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();
廣告
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP