2013-04-30 141 views
0

我在尝试点击表单中的按钮时遇到问题。 我试过xpath,cssselector,className,id,但还是找不到它。使用Webdriver无法在表单上找到按钮元素

这里的按钮的HTML片段:

<input type="button" value="Continue" id="ni-reg-btn-register" class="btnNext ni-reg-btn-register"> 

我使用webdriver的在Java中

获取此跟踪:
org.openqa.selenium.ElementNotVisibleException:元素当前不可见和因此可能不会与 命令持续时间或超时:30.09秒

频率:100%

浏览器:Firefox

网址:https://subscription.thetimes.co.uk/webjourney/webj_capturecustomerdetails

我一个(但没有运气)尝试每一个代码以下行:

driver.findElement(By.className("btnNext ni-reg-btn-register")).click(); 
driver.findElement(By.cssSelector("buttons#ni-reg-btn-register.btnNext ni-reg-btn-register")).click(); 
List<WebElement> buttonlist= driver.findElements(By.className("btnNext ni-reg-btn-register")); 
driver.findElement(By.id("ni-reg-btn-register")).click(); 
driver.findElement(By.xpath("//*[@id="ni-reg-btn-register"]")).click(); 
+1

如果您收到ElementNotVisibleException,则无法单击该元素。你可以检查几件事情。首先,我已经看到了很多,在DOM中可能存在另一个相同的按钮,它是隐藏的,而不是您想要点击的按钮。检查重复项。接下来检查是否需要等待元素可见之后才能点击它。尝试浏览你的代码,看看你是否得到相同的错误。 – Bob 2013-04-30 19:32:30

+0

,现在我已经查看了您提供的网站,但没有看到任何重复内容,但它仍然可能是时间问题。另外,既然它是一个表单,你也可以尝试driver.findElement(By.id(“ni-reg-btn-register”))。submit();无论哪种方式,您的选择似乎都是现货。 – Bob 2013-04-30 19:41:08

回答

0

我能够点击Continue按钮使用下面的xpath。

//input[@id='ni-reg-btn-register'] 
+0

我添加了: - driver.findElement(By.xpath(“// input [@ id ='ni-reg-btn-register']”))。click();但它不起作用 – rpetterson 2013-04-30 13:08:19

0

我会建议您尝试使用WebDriverWait呼叫等待有问题的元素在页面上用它进行交互之前存在。 Java文档可以在here找到。看起来,当您使用正确的定位器并且您的页面正在工作时,Selenium在加载之前尝试访问该元素时存在计时问题。

编辑:我无法找到提供的页面上提供的ID元素。我假设我错过了一个步骤,但是我搜索了该页面的HTML并没有发现任何内容。

0

我不找你提供的网页链接.. 更好CHK页面链接上面的按钮,并尝试页面加载后给予一定的等待语句...

隐含的等待将是更好或简化线程。睡眠(2000);

相关问题