1. 程式人生 > >【Python+selenium】進階篇:js注入,沒有我click不到節點

【Python+selenium】進階篇:js注入,沒有我click不到節點

經常寫指令碼的你,偶爾會碰到一些比較煩人的情況就是,明明選到了元素但是click就是沒有反應,可能的情況有以下幾種:

1.沒錯,你就是選錯元素了,對,是你自己的原因;

2.有其它的元素層給擋住了,比如隔壁元素的透明外邊框,當然這種問題正常點就點不到;

3.python操作瀏覽器時可能有幾畫素的偏差,因為各種原因,尤其是一些比較精細的點,很可能會出現問題;

...

好吧,學了js注入,即使我就是有元素被擋住了,甚至頁面都看不到,只要是它有對應的js監聽事件,我就能任意操縱它。

a=driver.find_element_by_class_name("u-button.btn.alert-ok")
#a為我要操作的元素節點
driver.execute_script("arguements[0].click();",a)
#我們要操作它的click監聽,所以呼叫click(),如果是其他監聽的話,把click改了就行,其他的不用變。
#arguements[0]為固定的寫法。

也有人說click不穩定,即使沒有遮擋,指令碼點選也沒有反應。不過不管什麼情況,相信js注入都能輕易搞定的。