selenium+Python(Js處理click失效)

    有時候元素明明已經找到了,運行也沒報錯,點擊後頁面沒任何反應。這種問題遇到了,是比較頭疼的,由於沒任何報錯,只是 click 事件失效了。python

問題:

1.在練習百度的搜索設置按鈕時,點保存設置按鈕,alert 彈出沒彈出(代碼沒報錯,只是獲取 alert 失敗)。

web

點擊父元素解決問題

1.遇到這種問題,應該是前面操做 select後致使的後遺症(由於我註釋掉 select那段是能夠點擊成功的)
2.第一種解決辦法,先點擊它的父元素一次,而後再點擊這個元素ui

3.實現代碼以下orm

js 直接點擊解決問題

1.遇到這種詭異問題,是時候出絕招了:js 大法
2.用 js 直接執行點擊事件blog

完整代碼:

# 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()
driver.get("https://www.baidu.com")
time.sleep(5)
mouse = driver.find_element_by_link_text("設置")
ActionChains(driver).move_to_element(mouse).perform()
time.sleep(3)
driver.find_element_by_link_text("搜索設置").click()
time.sleep(3)
s = driver.find_element_by_id("nr")
Select(s).select_by_visible_text("每頁顯示50條")
# 方法一,先點擊父元素
#driver.find_element_by_id("gxszButton").click()
#driver.find_element_by_class_name("prefpanelgo").click()
# 方法二,JS直接點擊
js = 'document.getElementsByClassName("prefpanelgo")[0].click()'
driver.execute_script(js)
driver.quit()
相關文章
相關標籤/搜索