1. 程式人生 > >20181128_selenium_java問題集錦(1)

20181128_selenium_java問題集錦(1)

1、WebElement找到,但是element is not clickable.

在定位WebElement時,有時候定位好,發現一點選,報出element is not cilckable.的錯誤,網上有很多報出次錯誤的原因,

我只遇到一個,那就是螢幕太長,雖然element找到了,但是,由於螢幕沒顯示到那,導致,點選不了,故,滾動一下螢幕就行,

在click()之前添上:

((JavascriptExecutor) driver).executeScript("window.scrollBy(224, 600)"); 

兩個引數分別為point的橫縱座標,寫個大概能到要點選的元素的位置就可。

順便滾動螢幕的其他辦法:

(1)移動到元素element物件的最頂端,與當前視窗的頂部對其:

((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView();", element); 

或者

((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element);

(2)移動到元素element的最底端,與當前視窗的底部對其:

((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(false);", element); 

(3)移動到頁面最底部:

((JavascriptExecutor) driver).executeScript("window.scrollTo(0, document.body.scrollHeight)");

(4)移動到指定的座標(相對於當前的座標移動)

((JavascriptExecutor) driver).executeScript("window.scrollBy(0, 700)"); 

結合上邊的scrollBy語句,相當於移動到700+800=1500的畫素位置:((JavascriptExecutor) driver).executeScript("window.scrollBy(0, 800)");

(5)移動到視窗絕對位置座標:

例,移動到座標1600畫素位置:

((JavascriptExecutor) driver).executeScript("window.scrollTo(0, 1600)");

結合上邊的scrollTo語句,移動到座標1200畫素位置:

((JavascriptExecutor) driver).executeScript("window.scrollTo(0, 1200)");