国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

selenium報(bào)錯(cuò)Element is not clickable at point及四種解決方法

2023-03-16 15:51 作者:眾創(chuàng)云  | 我要投稿

selenium報(bào)錯(cuò)Element is not clickable at point及四種解決方法

使用Selenium時(shí),觸發(fā)點(diǎn)擊事件,經(jīng)常報(bào)如下異常:
Element is not clickable at point
?

1、未加載
沒(méi)加載出來(lái)就等待元素加載出來(lái),再往下執(zhí)行。
可以使用python庫(kù)time

不過(guò)最好還是使用selenium自帶WebDriverWait

2、在iframe里
如果元素在iframe里,在窗口里找是找不到元素的,更是無(wú)法點(diǎn)擊。所以,要切換到iframe里去找元素。

3、不在視窗里,需要拉滾動(dòng)條
很多網(wǎng)站的列表頁(yè)不是立馬返回所有內(nèi)容,是根據(jù)視圖來(lái)顯示的。所以,我們就需要拖動(dòng)滾動(dòng)條來(lái)把要獲取的內(nèi)容顯示到視窗里才可以獲取到。

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

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

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

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

目前在firefox,chrome上驗(yàn)證都是可以跑通的

4、要點(diǎn)擊的元素被覆蓋
可以使用事件鏈來(lái)解決
例如下拉菜單,通過(guò)hover,讓子菜單顯示,就可以點(diǎn)擊了。

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

5、要點(diǎn)擊的元素被遮擋

如圖:無(wú)法點(diǎn)擊go,被前面的懸浮元素遮擋




3. 解決方案

現(xiàn)在我們已經(jīng)了解到錯(cuò)誤的原因,接下來(lái)我們來(lái)聊聊解決方案,如果元素被擋住的話有兩種情況:

  1. 遮擋是臨時(shí)的
    在這種情況下,我們可以添加等待,等待元素可被點(diǎn)擊。具體方法可參考?Selenium系列教程 - 解讀selenium等待方式?和?Selenium系列教程 - WebDriverWait 詳解以及自定義判斷條件?。
    WebDriverWait(driver, 10).until(EC.element_to_be_clickable(("id", "su")))

  2. 遮擋是永久的
    在這種情況下,我們可以調(diào)用 JavaScript 直接在元素上發(fā)送單擊。調(diào)用 JavaScript 可參考?Selenium系列教程 - 調(diào)用JavaScript?。
    driver.execute_script("arguments[0].click()", element)?(此為通用的解決方法)


selenium報(bào)錯(cuò)Element is not clickable at point及四種解決方法的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
社会| 固原市| 临颍县| 鄄城县| 陇西县| 天全县| 册亨县| 大厂| 麟游县| 江城| 保山市| 银川市| 吉首市| 天气| 柘荣县| 九龙城区| 长寿区| 正安县| 北碚区| 阳春市| 鹤山市| 济源市| 绥宁县| 潜江市| 铜陵市| 庄河市| 融水| 汝州市| 淮南市| 涡阳县| 普兰店市| 洪泽县| 龙胜| 哈密市| 鸡东县| 抚顺市| 栾城县| 清镇市| 伊春市| 通道| 井研县|