PhantomJS ist nicht in der Lage, suchen Sie nach dem element mit selenium webdriver
Ich habe eine Selen-web-Treiber-Skript, Welches nur Zugriff auf ein web-element(textbox) und setzt seinen Wert auf einen Wert .
Ich bin mit ChutzPath weil es nutzt PhantomJS browser auf back-end.
Aber Jedes mal, wenn das script ausführen,wird Die folgende Fehlermeldung angezeigt.
T
Result Message:
Test method Test_Project_with_Selenium.UnitTest1.BrowseTheWeb threw exception:
OpenQA.Selenium.NoSuchElementException: Error Message => 'Unable to find element with id 'inputEl''
***caused by Request => {"headers":{"Accept":"application/json, image/png","Connection":"Close","Content-Length":"47","Content-Type":"application/json;charset=utf-8","Host":"localhost:42982"},"httpVersion":"1.1","method":"POST","post":"{\"using\":\"id\",\"value\":\"textfield-1042-inputEl\"}","url":"/element","urlParsed":{"anchor":"","query":"","file":"element","directory":"/","path":"/element","relative":"/element","port":"","host":"","password":"","user":"","userInfo":"","authority":"","protocol":"","source":"/element","queryKey":{},"chunks":["element"]},"urlOriginal":"/session/01225660-1a45-11e3-8ea4-eff85782779d/element"}
Result StackTrace:
at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
at OpenQA.Selenium.Remote.RemoteWebDriver.FindElement(String mechanism, String value)
at OpenQA.Selenium.Remote.RemoteWebDriver.FindElementById(String id)
at Test_Project_with_Selenium.UnitTest1.BrowseTheWebClient() in c:\Users\XYZ\Documents\Visual Studio 2012\Projects\ProjectName\Test_Project_with_Selenium\UnitTest1.cs:line 19***
- Es wäre hilfreich zu sehen, das HTML. Aus dem Stegreif, Sie sind wahrscheinlich mit ein Problem, wenn das element lädt nach Selen Abfragen der Seite (und könnten Sie implizite wartet auf das element, das Sie möchten, zu erscheinen - Treiber.Verwalten().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));.) Oder die id, die Sie suchen, innerhalb eines frame/iframe, in welchem Fall würden Sie brauchen, um Treiber.SwitchTo().Rahmen("frameIdentifier");
- gehen Sie voran und setzen, dass in der Antwort. Sie sind vor Ort auf.
- Es ist wichtig zu zeigen, verwenden (die relevanten Teile) Ihr Skript als gut, so können wir tatsächlich den code sehen und suchen Sie nach Fehlern.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht sicher, ob dies ist hier der Fall, denn die Frage ist nicht sehr spezifisch, aber eine Sache, die ich lief in ist, dass PhantomJS 1.9.7 erfordert das HTTP-Schema in der Lage.
So, wenn Sie navigieren
localhost:42982/element
sollten Sie angeben, um den Treiber, den Sie möchten, navigieren Sie zuhttp://localhost:42982/element
.Aus dem Stegreif, Sie sind wahrscheinlich mit ein Problem, wenn das element lädt nach Selen-Abfragen auf der Seite, und Sie verwenden könnte waitfor.js
https://github.com/ariya/phantomjs/blob/master/examples/waitfor.js
Oder vielleicht dieses:
Oder die id, die Sie suchen, innerhalb eines frame/iframe, in welchem Fall würden Sie brauchen, zu verwenden