我无法点击表单中的按钮。 我试过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();
答案 0 :(得分:0)
我可以使用下面的xpath点击Continue
按钮。
//input[@id='ni-reg-btn-register']
答案 1 :(得分:0)
我建议尝试WebDriverWait
调用,等待相关元素在与其进行交互之前存在于页面上。可以找到Java文档here。看来,当您使用正确的定位器并且页面正常工作时,会出现一个时间问题,即Selenium在加载元素之前尝试访问该元素。
编辑:我无法使用提供的 id 在提供的页面上找到元素。我假设我错过了一个步骤,但是我搜索了该页面的HTML并没有找到任何结果。
答案 2 :(得分:0)
我在您提供的页面链接上找不到上面的按钮.. 更好的chk页面链接,并尝试在页面加载后给出一些等待声明...
隐式等待会更好或者简化Thread.sleep(2000);