我遇到了一个奇怪的情况,在“宁静”页面上,我必须滚动到该元素:
withAction().moveToElement(webElement).perform();
对于某些元素,此方法将抛出:
org.openqa.selenium.interactions.MoveTargetOutOfBoundsException: (377.375, 958.3999938964844) is out of bounds of viewport width (1268) and height (943)
它仅在Firefox中发生(Chrome可以正常运行)。而且,几乎所有其他我使用相同方法的地方都运行良好。所有元素只是按钮,输入字段等常用元素。
有人知道如何在Firefox中解决此问题吗?
我有:
此错误消息…
…暗示 Selenium 无法聚焦在所需的元素上,因为该元素超出了视口的范围。
您的主要问题是将 WebElement 标识为 webElement 不在视口中,因此 Selenium 无法通过方法将 焦点 移到所需元素上moveToElement()。
moveToElement()
一个简单的解决方案是使用executeScript()方法将所需元素 放入视口中 ,然后moveToElement()按如下所示调用方法:
executeScript()
WebElement myElement = driver.findElement(By.xpath("xpath_of_element")); ((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView();", myElement); withAction().moveToElement(webElement).perform();