Selenium - 元素在指定点不可点击
在尝试使用 Selenium webdriver 点击链接时,我们可能会遇到错误 - 元素在指定点不可点击。这在 chromedriver 中很常见,因为 Chrome 浏览器通过点位置确定元素。
当元素的位置发生变化并且我们尝试点击它时,就会遇到此错误。这是因为元素存在于 DOM 中,但其在页面上的位置不固定。
有一些解决方法可以修复此错误,如下所示:
添加显式等待。webdriver 可以等待直到满足预期条件 - visibilityOf(webdriver 将等待 DOM 中的元素可见)。
添加显式等待。webdriver 可以等待直到满足预期条件 - visibilityOfElementLocated。webdriver 将等待元素出现在 DOM 中并在页面上显示。
最大化浏览器窗口大小。
语法
driver.manage().window().maximize()
添加 Actions 类的方法。
语法
WebElement l = driver.findElement(By.name("field-name")); Actions at = new Actions(driver); at.moveToElement(l).click().perform();
JavaScript 执行器。
获取沿 x 轴位置的语法:
WebElement l = driver.findElement(By.name("field-name")); JavascriptExecutor je =(JavascriptExecutor)driver; je.executeScript("window.scrollTo(0,"l.getLocation().x+")"); l.click();
获取沿 y 轴位置的语法:
WebElement l = driver.findElement(By.name("field-name")); JavascriptExecutor je =(JavascriptExecutor)driver; je.executeScript("window.scrollTo(0,"l.getLocation().y+")"); l.click();
广告