WebDriver无法找到浏览器可见区域中不可见的元素。为了使Web元素可以通过WebDriver查看,我们需要在浏览器的视图中显示该元素以向下滚动特定的div!我尝试了很多,没有帮助我。因此它仍然没有工作。请建议
我的代码:
((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView();", driver.findElement(By.xpath("//*[@id='lobbyMain']/div[3]/div[2]/ul/li[1]/div[1]/h3/a"))).onclick;
答案 0 :(得分:0)
查看滚动的基本方法是:
Webelement element = driver.findElement(By.xpath("//*[@id='lobbyMain']/div[3]/div[2]/ul/li[1]/div[1]/h3/a"))
JavascriptExecutor js = (JavascriptExecutor) element;
int yPosition = element.getLocation().getY();
for (int second = 0;; second++) {
if(second >=4){
break;
}
((JavascriptExecutor) driver).executeScript("window.scrollBy(0,200)", ""); //y value '400' can be altered
Thread.sleep(3000);
根据您的方便,您可以改变秒数。
或者只是参考下面的链接。它会对你有所帮助。
如果您仍然遇到问题,请回复我。 : - )
答案 1 :(得分:0)
当您对元素执行单击时,Selenium将自动滚动到该元素。你可以这样做:
driver.findElement(By.xpath("//*[@id='lobbyMain']/div[3]/div[2]/ul/li[1]/div[1]/h3/a")).click()
硒应该找到它,滚动到它并点击它。 如果这不起作用,我有时会用它来滚动:
((JavascriptExecutor) driver).executeScript(
"scroll(" + element.getLocation().getX() + "," + element.getLocation().getY() + ")");