python selenium 在網頁上獲取了元素,呼叫了click()函式以后,沒有呈現和手動點擊一樣的效果


這是點擊前后的圖

這是原始碼,應該是用了jquery的ztree插件,對前端不是很了解,哪位大神知道這種情況應該怎樣模擬瀏覽器的操作可以點擊該按鈕。
感激不盡
uj5u.com熱心網友回復:
是不是 定位 公海客戶 點擊無反應?這種選單, 要和實際操作一樣, 先定位 【客戶管理】 , click 后,等幾秒, 再定位 【公海客戶】 再 click .
uj5u.com熱心網友回復:
不是的,是我獲取了客戶管理這個元素以后,呼叫click無反應,公海客戶那個是我在瀏覽器手動點的,我想實作的就是模擬手動點擊客戶管理然后展開公海客戶這個操作
uj5u.com熱心網友回復:
那就要先確認你的元素定位是否準確了, 用 byxpath ?uj5u.com熱心網友回復:
有id,我直接by_id定位的
uj5u.com熱心網友回復:
從 html 原始碼里看不出有ID 。定位完后, 可以試著print 元素的 text 看看, 要確保定位準確。
selenium定位元素準確后,點擊失敗一般就兩種原因, 1、無法可視 , 2、被遮罩。
uj5u.com熱心網友回復:
我換了一種定位方式
one_button = browser.find_element_by_xpath("//div[text() = '客戶管理']")
one_button.click()
用這種可以嗎? 可是還是沒有反應,我這么輸出text是用客戶管理四個字的。
順便請問下,這和這個系結click事件有關系嗎? 有沒有可能我點擊的是這個元素,但是點擊事件沒有系結在這個元素上呢?
uj5u.com熱心網友回復:
有這個可能, 你要查一下 ‘客戶管理’的上層元素, 看是那一個元素有對應的click 事件。uj5u.com熱心網友回復:
主要是這里用了一個jquery的ztree,我不知道這個要怎么處理
uj5u.com熱心網友回復:
不用研究 jquery , 只要搞明白 點擊時, 是那幾個元素引發了 js 的click , 就是展現下一層子選單的代碼把【功能主選單】 到 【統計報表】 的HTML 代碼帖來看看。看能否找到突破口。
uj5u.com熱心網友回復:
好的,我先梳理下,再向你請教
uj5u.com熱心網友回復:

你好這是網頁原始碼
uj5u.com熱心網友回復:

看了下,這是對應的處理代碼
uj5u.com熱心網友回復:
那就試著對 這兩個 DIV click 一下:第二個 panel 和第二個 panel 下的 panel header accrordion-header 這兩個DIV 元素
都 click 一下, 看那個起作用。
看代碼應該就這兩個了。
uj5u.com熱心網友回復:
好像依然還是不行
uj5u.com熱心網友回復:
看了下代碼,panel這個面板,是通過jquery動態生成的,是否會對定位元素有影響,但是我又確實是可以定位到元素的,能輸出text
uj5u.com熱心網友回復:
再次請教一下: 我研究了一下原始碼
首先原來的代碼是這樣:

原先有個div
然后通過jquery又在上面生成了一個panel

click事件是系結在新生成的panel上的,這樣是不是會存在遮擋的問題,導致click失效
uj5u.com熱心網友回復:
那就試著click 一下這個新panel , 看看效果, 把可能的影響的元素都click 一下,測驗時拋出selenium 的例外, 如果不能click , 會有例外發生的。如果報錯:Element is not clickable at point , 那就有可能被上層元素遮罩了。
還有個方法, 不過我沒試過。你可以試試
安裝瀏覽器的Selenium IDE ,錄制你的操作, 看看點擊程序。
uj5u.com熱心網友回復:
確認定位,然后加sleepuj5u.com熱心網友回復:
沒有定位iframeuj5u.com熱心網友回復:
你用xpath先定位一次看看,如果xpath可以成功定位點擊就說明你的byid定位錯了uj5u.com熱心網友回復:
定位不明確兄弟,推薦看下書或者案例原始碼模仿下uj5u.com熱心網友回復:
執行緒停1s中,可能是頁面點擊太快了轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/165336.html
上一篇:python selenium 打開京東網頁,有概率一直等待到超時,什么原因?
下一篇:phyton 新手多段二分法求助
