有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Selenium WebDriver Java在Chrome中找不到要滚动到的元素

我有一个Web应用程序,左侧有一个可滚动的菜单。我的代码非常简单:

WebElement elementToScrollTo = driver.findElement(By.xpath(locator));
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView();", elementToScrollTo);

locator是指向我要单击的web元素/菜单项的链接。问题是在Chrome中,第一行抛出了一个NoSuchElementException。所以很明显,我不能滚动到一开始找不到的东西

然而,奇怪的是,在IE中,一切都很完美。可以找到元素并滚动菜单。之后,我使用元素(即单击它)

我无法滚动整个浏览器窗口,因为我只需要左侧的菜单面板来滚动

我有最新的Chrome (60.0.3112.78 (Official Build) (64-bit))chromedriver 2.30

注意:我已经解决了这个问题。它找不到它的原因是,它没有滚动到菜单项的父级,即level 2元素。因此,第二行(滚动)在Chrome中没有任何功能,因此驱动程序无法在3级(2级的子级)上找到菜单项。所以也许在Chrome中滚动不起作用


共 (1) 个答案

  1. # 1 楼答案

    位于frame中的HTML元素可能有问题。要处理这些元素,首先需要切换帧

    你能试试这个命令吗 driver.switchTo().frame()

    此外,如果上面的方法不起作用,尝试使用implicitWait。也许,您的元素加载需要时间,因此web驱动程序无法找到它

    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);