HTML 源代碼在這里
這似乎微不足道,但經過數小時的嘗試后,我無法使用 Selenium 選中此復選框。我可以毫無問題地選擇元素,甚至可以通過將 Keys.RETURN 發送到元素來“突出顯示”(參見下面的代碼片段),但是在嘗試單擊它時,沒有任何反應。也許有人有想法?
我已經嘗試過的:
- 與 WebDriverWait 一起使用
- 使用 .click()/.send_keys(Keys.RETURN) 的多種不同組合
- 幾乎 Selenium 接受元素的 XPATH/css 選擇器/id/name/classname/text 的每個組合,以及它的所有子元素和它的大多數父元素(包括跨度/標簽,以及標簽本身內的文本)。
- 使用動作直接點擊元素/標簽坐標(沒有任何反應,即使我可以 100% 確認它是通過使用 context_click() 來點擊正確的位置)。
- 使用 execute_script 將“checked”屬性更改為 True(復選框顯示為已選中,但很明顯它只是客戶端,因為在實際單擊時應該呈現的框沒有)。
- 使用 execute_script 將類更改為“ng-valid ng-not-empty ng-dirty ng-valid-parse ng-touched”
這是我覺得最接近我的代碼(它“突出顯示”了這里看到的框)
browser.find_element(By.ID, "sp_formfield_none_of_the_above").send_keys(Keys.RETURN)
uj5u.com熱心網友回復:
經過一段時間的測驗,設法解決了它。希望這對將來的人有所幫助。我不得不使用 JS 在復選框元素上執行 .click() 。回想起來,我應該早點嘗試這個解決方案。見代碼片段:
cb_none = browser.find_element(By.ID, 'sp_formfield_none_of_the_above')
browser.execute_script("arguments[0].click();", cb_none)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/323677.html
