使用Webdriver在表单上找不到按钮元素

时间:2013-04-30 10:28:46

标签: selenium-webdriver

我无法点击表单中的按钮。 我试过xpath,cssselector,className,id,但仍然无法找到它。

以下是该按钮的HTML代码段:

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

我在Java中使用WebDriver

获得此追踪:
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();

3 个答案:

答案 0 :(得分:0)

我可以使用下面的xpath点击Continue按钮。

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

答案 1 :(得分:0)

我建议尝试WebDriverWait调用,等待相关元素在与其进行交互之前存在于页面上。可以找到Java文档here。看来,当您使用正确的定位器并且页面正常工作时,会出现一个时间问题,即Selenium在加载元素之前尝试访问该元素。

编辑:我无法使用提供的 id 在提供的页面上找到元素。我假设我错过了一个步骤,但是我搜索了该页面的HTML并没有找到任何结果。

答案 2 :(得分:0)

我在您提供的页面链接上找不到上面的按钮.. 更好的chk页面链接,并尝试在页面加载后给出一些等待声明...

隐式等待会更好或者简化Thread.sleep(2000);