2

Selenium Java スクリプトはローカルでは問題なく動作していますが、ジェンキンでは失敗します。例えば:

driver.findElement(By.xpath("//div[@id='IDName']")).click();//loads a new page
driver.findElement(By.xpath("//div[@id='TextBox']"))).sendKeys("xyz");

ジェンキンスでこのようなスクリプトを実行すると、エラーが発生しUnable to locate element: "//div[@id='TextBox']"ます。しかし、ジェンキンスで同じスクリプトを再度実行すると、渡されます。これは、ページが正しく読み込まれていないことが原因であることは理解できます。基本クラスで次のコマンドを使用しています。

driver.manage().timeouts().implicitlyWait(_TIMEOUT, TimeUnit.SECONDS);//_TIMEOUT = 50;

Thread.sleep()click と sendkeys の行の間にorを追加することはできdriver.wait()ますが、600 以上のスクリプトを実行する必要があるため、それは良い考えではないと思います。

4

2 に答える 2

0

WebdriverWait はおそらく必要なものです。

ここに良い答えがあります:https://stackoverflow.com/a/9904784/629116

「//div[@id='TextBox']」がレンダリングされるのを待ってから、それに sendKeys を試みます。可能であれば、xpath の代わりに css セレクターの使用を検討することもできます。css セレクターはより高速に検出され、その柔軟性により DOM の変更に一般的に耐えることができることがわかりました。

于 2013-04-17T22:26:50.793 に答える