前言
有時候元素明明已經找到了,運行也沒報錯,點擊后頁面沒任何反應。這種問題遇到了,是比較頭疼的,因為沒任何報錯,只是click事件失效了。
本篇用2種方法解決這種詭異的點擊事件失效問題
一、遇到的問題
1.在練習百度的搜索設置按鈕時,點保存設置按鈕,alert彈出沒彈出(代碼沒報錯,只是獲取alert失敗),相信不只是我一個人遇到過。
二、點擊父元素
1.遇到這種問題,應該是前面操作select后導致的后遺症(因為我注釋掉select那段是可以點擊成功的)
2.第一種解決辦法,先點擊它的父元素一次,然后再點擊這個元素
3.實現代碼如下
三、js直接點擊
1.遇到這種詭異問題,是時候出絕招了:js大法
2.用js直接執行點擊事件
四、參考代碼
# coding:utf-8
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.select import Select
import time
driver = webdriver.Firefox()
url = "https://www.baidu.com"
driver.get(url)
time.sleep(3)
mouse = driver.find_element("link text", "設置")
ActionChains(driver).move_to_element(mouse).perform()
time.sleep(3)
driver.find_element("link text", "搜索設置").click()
time.sleep(3)
s = driver.find_element("id", "nr")
Select(s).select_by_visible_text("每頁顯示50條")
# 方法一:先點父元素 交流QQ群:232607095
# driver.find_element("id", "gxszButton").click()
# driver.find_element("class name", "prefpanelgo").click()
# 方法二:用js直接去點擊 交流QQ群:232607095
js = 'document.getElementsByClassName("prefpanelgo")[0].click();'
driver.execute_script(js)
學習過程中有遇到疑問的,可以加selenium(python+java) QQ群交流:646645429
看完之后覺得對你有幫助,就在右下角點個贊吧,小編感激不盡!
selenium+python高級教程》已出書:selenium webdriver基於Python源碼案例
(購買此書送對應PDF版本)