解決了:
除非在最近的 0.1 秒內單擊,否則這個單個輸入欄位似乎是不可互動的。為了解決這個問題,使用了以下代碼:
ActionChains(self.driver).move_to_element(input).click().send_keys("200").perform()
這樣,焦點就停留在元素上,并且輸入有效。有趣的是,如果呼叫 input.send_keys() 這仍然不起作用。
問題:
在網站上按下按鈕后,會打開一個彈出視窗,其中包含由 react 生成的多個輸入欄位。其中大部分都可以訪問。但是,其中之一不是并回傳 ElementNotInteractableException 錯誤。我嘗試了最常見的解決方案,但這些都不起作用。
有趣的部分是,當元素從前端手動訪問時,它可以進行互動。該元素也正常顯示在螢屏截圖中,該螢屏截圖在拋出例外時進行
嘗試的解決方案:
- 增加隱式等待1分鐘,
- 添加顯式等待直到 1 分鐘
- 對元素使用不同的查找方法
- 重新排序測驗以查看其他元素是否影響它(所有可能的訂單都失敗了)
- 添加動作鏈移至并單擊。移動到并單擊作業(我可以看到使用藍色輪廓選擇的元素,但輸入仍然感覺)
- 使用 Javascript 將字串插入到輸入 fields.value
發生錯誤的代碼塊:
#this input element is next to it in the same parent element
dropdownparent = elems[2].find_element_by_xpath(".//div[@role='combobox']")
dropdowninput = dropdownparent.find_element_by_css_selector("input")
f.inputtext(dropdowninput, "Coulance", True )
#reobtain the parent items to avoid a stale element reference error
modal = self.driver.find_element_by_class_name("component-window")
body = modal.find_element_by_class_name("body")
elems = body.find_elements_by_xpath("./div")
required = elems[2].find_elements_by_class_name("required")
inputparent = required[1].find_element_by_class_name("input")
input = inputparent.find_element_by_css_selector("input")
#error occurs on next line
f.inputtext(input, "200")
錯誤日志:
https://pastebin.com/ihqCvjfj
它很長但它是一個非常標準的元素notaccessible
任何建議將不勝感激,每當我嘗試某事時,我都會更新解決方案嘗試部分
uj5u.com熱心網友回復:
當元素超出可點擊區域或其他元素覆寫該元素時,元素不可互動。您可以嘗試將頁面滾動到某個元素,也可以通過執行 javascript 來設定輸入值,如下所示:
element = inputparent.find_element_by_css_selector("input")
driver.execute_script("""arguments[0].value = arguments[1];""", element, "some input value")
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/339956.html
下一篇:無法從div中抓取文本
