【发布时间】:2019-08-17 14:15:20
【问题描述】:
我正在尝试通过向下滚动在 xpath 中获取一个 Web 元素,但这很困难,因为该 Web 元素仅在我向下滚动时出现,我的意思是该 Web 元素仅在我向下滚动时出现,所以我不知道该怎么做,因为也许我必须先向下滚动,然后再向下滚动,直到出现我想要的 web 元素,这取决于我想要获得的元素。 我尝试用它向下滚动,但没有从下面得到 web 元素。
JavascriptExecutor js = (JavascriptExecutor) getDriver();
js.executeScript("window.scrollBy(0," + bajar + ")");
waitFor(3).seconds();
我也试过这个,但没有找到 WebElement。
Point loc = getDriver().findElement(findBy(String.format
("//div[@class='windowViewMode-maximized active lafPageHost']//tbody//td//span/a[@title='%s']//ancestor::tr//child::td//span/a[@title='%s']",
nombre_cuenta, accion_relacional))).getLocation();
System.out.println(loc);
JavascriptExecutor js = (JavascriptExecutor) getDriver();
js.executeScript("javascript:window.scrollBy(0," + loc.y + ")");
System.out.println("El valor de y es " +loc.y);
System.out.println("Se hizo el scroll");
waitFor(1).seconds();
WebElement registroLista = findBy(String.format
("//div[@class='windowViewMode-maximized active lafPageHost']//tbody//td//span/a[@title='%s']//ancestor::tr//child::th//span/a[@title='%s']",
nombre_cuenta,accion_relacional));
baseMetodosPagina.clickJavaScript(registroLista);
顺便说一句,我正在使用 selenium 和 java。
【问题讨论】:
-
您可以在函数中使用 WebDriverWait 和滚动。捕获超时异常并再次运行滚动/等待。仅当您确定元素最终会在那里时才这样做......或者至少放入一个在这么多超时后退出的计数器。
-
这是我一直想到的,但我不知道怎么做。
标签: selenium selenium-webdriver xpath