出現此錯誤:“元素在該點不可點選”
在使用 Selenium webdriver 時,我們可能會遇到“元素在該點不可點選”的錯誤。由於 Chrome 瀏覽器使用點位置來識別元素,因此這通常發生在 chromedriver 中。
當元素的位置是動態的,並且我們想要點選該元素時,就會丟擲此錯誤。此錯誤的原因是,如果元素在 DOM 中可用,但其位置在前端是動態的。
下面列出了一些解決此問題的方法:
使用顯式等待。我們可以等待預期條件 - visibilityOf。webdriver 將等待 DOM 中可用的元素可見。
使用顯式等待。我們可以等待預期條件 - visibilityOfElementLocated。webdriver 將等待元素在 DOM 中可用並可見。
最大化瀏覽器大小。
語法
driver.manage().window().maximize();
- 使用 Actions action。
語法
WebElement m = driver.findElement(By.id("txt-loc"));
Actions a = new Actions(driver);
a.moveToElement(m).click().perform();- 使用 JavaScript 執行器。
獲取 x 軸位置的語法:
WebElement m = driver.findElement(By.id("txt"));
JavascriptExecutor j =(JavascriptExecutor)driver;
j.executeScript(
"window.scrollTo(0,"m.getLocation().x+")");
m.click();獲取 y 軸位置的語法:
WebElement n = driver.findElement(By.id("txt"));
JavascriptExecutor j =(JavascriptExecutor)driver;
j.executeScript(
"window.scrollTo(0,"n.getLocation().y+")");
m.click();
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP