我使用 serenity jbehave 运行脚本。我需要点击继续按钮。在这里,我通过动态xpath 来识别它。但它没有回复
这是网络元素
<input type= "button" class="bin-large" onclick="continueperson(document.getElementById('controlTodisplay').value);" value="continue">==$0
&#13;
我已将其识别为
Xpath=//input[@value='continue']
执行点击操作。
任何人都可以帮助我!
答案 0 :(得分:1)
事实上,大多数时候无法点击按钮的问题与您拼错了代码无关,如果页面没有完全加载,如果继续出错,请尝试执行“A”模式做“B”
模式:
driver.findElement(By.xpath("//input[@value='continue']"));
B模式:
WebDriverWait wait =new WebDriverWait (driver,10);
wait.until(expectedconditions.elementtobeclickable(By.xpath("//input[@value='continue']"));
driver.findElement(By.xpath("//input[@value='continue']"))
答案 1 :(得分:1)
尝试以下任何一种代码来点击按钮。
在点击按钮之前,请提供几秒wait
,以便您的司机可以找到该元素。
等待,我使用explicit wait
方法。
WebDriverWait wait = new WebDriverWait(driver, 5); // wait for 5 seconds
wait.until(ExpectedConditions.elementToBeClickable(driver.findElement(By.xpath("//input[@value='continue'][@type='button']"))));
driver.findElement(By.xpath("//input[@value='continue'][@type='button']")).click();
OR
尝试使用java-script executor
方法点击按钮。
WebElement button = driver.findElement(By.xpath("//input[@value='continue'][@type='button']"));
((JavascriptExecutor) driver).executeScript("arguments[0].click();", button);
答案 2 :(得分:0)
在执行“ element.click”之前,尝试滚动浏览器,使该按钮“可见”