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