簡體   English   中英

Python Selenium。 元素不可交互

[英]Python Selenium. Element is not interactable

我正在嘗試填寫表格( https://all-access.wax.io )。 當我使用 Javascript

document.getElementsByName("userName")[0].value = "Hello" ,然后我可以將文本寫入表單。 但是,當我在 selenuim 中使用相同的概念時

driver.find_element_by_name("userName").send_keys("Hello") ,然后我得到:

selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable

當我執行時: self.driver.find_element_by_name("userName")[1].send_keys("Hello")這會導致:

TypeError: 'WebElement' object is not subscriptable

我也嘗試過等到內容加載完畢,以及使用 XPath 和其他選擇器。 我想我犯了一個簡單的錯誤,但我已經幾個小時無法解決它。

重現問題的代碼:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

browser = webdriver.Chrome()
browser.get('https://all-access.wax.io')
browser.find_element_by_name("userName")[1].send_keys("hello")
print()
browser.find_element_by_xpath("(//input[@name='userName'])[2]").send_keys("hello")

您想將 send_keys 發送到第二個輸入標簽,而不是第一個。

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

browser = webdriver.Chrome()
browser.get('https://all-access.wax.io')
browser.find_element_by_name("userName").send_keys("hello")
print()

您正在使用 find_element 返回一個 webelement 而不是數組,使用 find_elements 或刪除索引

只有name屬性的方法對我不起作用,因為當您嘗試使用 [1] 訪問時,仍然有兩個元素,因此定位器不是唯一的。 因此,我使用了父pannels visible-desktop-only-flex class 並添加了顯式等待。

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait

browser = webdriver.Chrome(executable_path='/snap/bin/chromium.chromedriver')


browser.get('https://all-access.wax.io')
wait = WebDriverWait(browser, 15)
wait.until(EC.element_to_be_clickable((By.XPATH, "//div[@class='pannels visible-desktop-only-flex']//input[@name='userName']")))
browser.find_element_by_xpath("//div[@class='pannels visible-desktop-only-flex']//input[@name='userName']").send_keys("hello")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM