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();

更新於:2021年6月25日

8K+ 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.