最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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ó)家法律
凌云县| 邯郸县| 东阳市| 句容市| 新宁县| 阿克陶县| 永修县| 徐闻县| 河曲县| 石狮市| 汶上县| 新余市| 萨嘎县| 当阳市| 安化县| 洪湖市| 安丘市| 长乐市| 诏安县| 三门县| 永春县| 沂南县| 沛县| 阜城县| 秦安县| 佳木斯市| 太湖县| 旌德县| 阜阳市| 太原市| 西畴县| 保定市| 雷山县| 房产| 高雄市| 灵石县| 台东县| 南雄市| 马山县| 城市| 光山县|