五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(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ó)家法律
南澳县| 南宁市| 英吉沙县| 阳山县| 耿马| 龙门县| 夹江县| 栾川县| 隆昌县| 蓬安县| 阿克陶县| 白朗县| 穆棱市| 吉林省| 红原县| 衡东县| 建宁县| 芒康县| 贵德县| 千阳县| 罗定市| 内乡县| 山阴县| 渝中区| 东丰县| 沧州市| 巴南区| 商城县| 汤原县| 宽城| 柏乡县| 福清市| 阳山县| 赤峰市| 班玛县| 平乐县| 理塘县| 沽源县| 玉树县| 万盛区| 梁平县|