1. 程式人生 > >selenium報錯Element is not clickable at point及四種解決方法

selenium報錯Element is not clickable at point及四種解決方法

使用Selenium時,觸發點選事件,經常報如下異常:

Element is not clickable at point

 

1、未載入

沒加載出來就等待元素加載出來,再往下執行。
可以使用python庫time

不過最好還是使用selenium自帶WebDriverWait

2、在iframe裡

如果元素在iframe裡,在窗口裡找是找不到元素的,更是無法點選。所以,要切換到iframe裡去找元素。

3、不在視窗裡,需要拉滾動條

很多網站的列表頁不是立馬返回所有內容,是根據檢視來顯示的。所以,我們就需要拖動滾動條來把要獲取的內容顯示到視窗裡才可以獲取到。

js="var q=document.documentElement.scrollTop=100000"   driver.execut_script(js)

#滑動到頂部    js="var q=document.documentElement.scrollTop=0"    driver.execut_script(js)

#滑到底部    js="window.scrollTo(0,100000)"     driver.execute_script(js)

#滑動到頂部    js="window.scrollTo(0,0)"      driver.execute_script(js)

目前在firefox,chrome上驗證都是可以跑通的

4、要點選的元素被覆蓋

可以使用事件鏈來解決
例如下拉選單,通過hover,讓子選單顯示,就可以點選了。

menu = driver.find_element_by_css_selector(".nav")
hidden_submenu = driver.find_element_by_css_selector(".nav #submenu1")

ActionChains(driver).move_to_element(menu).click(hidden_submenu).perform()