Selenium2+python自動化46-js解決click失效問題

來源:互聯網
上載者:User

標籤:mon   cti   http   https   一個   rom   get   實現   class   

前言

有時候元素明明已經找到了,運行也沒報錯,點擊後頁面沒任何反應。這種問題遇到了,是比較頭疼的,因為沒任何報錯,只是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)

Selenium2+python自動化46-js解決click失效問題

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.