Selenium脚本在jenkins中失败但在本地工作正常

时间:2013-04-17 05:16:11

标签: java selenium jenkins

我的selenium java脚本在本地运行正常但在jenkins中失败了。例如:

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

在jenkins中运行这样的脚本后,我的错误为Unable to locate element: "//div[@id='TextBox']"。但是当我在jenkins中再次运行相同的脚本时,它会被传递掉。我可以理解这是由于页面加载不正确。我在基类中使用以下命令。

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

我可以在click和sendkeys行之间添加Thread.sleep()driver.wait(),但我认为这不是一个好主意,因为我有超过600个脚本要执行。

2 个答案:

答案 0 :(得分:0)

添加隐式等待,以确保元素已可用,或使用sleep

答案 1 :(得分:0)

WebdriverWait可能就是您所需要的。

这是一个很好的答案:https://stackoverflow.com/a/9904784/629116

在尝试向其发送键之前,您需要等待“// div [@ id ='TextBox']”呈现。您也可以考虑在可能的情况下考虑使用css选择器而不是xpath。我发现css选择器的发现速度更快,并且由于它们的灵活性,通常可以承受DOM的变化。