selenium.common.exceptions.ElementNotInteractableException:消息:元素不可交互-尝试将.send_keys()插入文本框时

时间:2020-10-05 16:49:25

标签: python python-3.x selenium selenium-webdriver selenium-chromedriver

self.driver = webdriver.Chrome(options=self.chrome_options, executable_path='chromedriver.exe')

self.driver.implicitly_wait(5)

self.driver.get("website")


self.driver.switch_to.frame(self.driver.find_element_by_tag_name("iframe"))
self.driver.find_element_by_class_name("mylivechat_collapsed").click()

self.driver.find_element_by_xpath("//input[@placeholder='Name'").send_keys(self.names)
self.driver.find_element_by_xpath("//input[@placeholder='Email']").send_keys(self.email)
self.driver.find_element_by_xpath("//textarea[@placeholder='Type your message']").send_keys(self.message)

嗨,

我正在尝试在3个输入框中输入文本。 Selenium设法找到3个框,但是当我尝试使用selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable方法时,它由于某种原因返回了错误(send_keys())。文本框可见且可点击

我尝试使用WebDriverWait(以及其他等待,例如times.sleepdriver.implicitly-wait())和ActionChains,但它们不起作用。

Email input HTML code

我该如何解决? 非常感谢您的帮助:)

1 个答案:

答案 0 :(得分:0)

让我们尝试一起调试它:

  1. 您确定在分配时设置了变量,即self.name等吗?

  2. 您是否正在使用可以帮助您调试并可以使用断点的IDE,以便逐步执行代码?因为如果没有,我会尝试将您的问题隔离为仅设置静态值,例如不要同时从类变量中获取值。 在您的情况下,请使用:

    self.driver.find_element_by_xpath(element_path_here).send_keys(“简·多伊”)

  3. 如果您可以控制源代码,请尝试将ID添加到元素中(假定ID是唯一的),并使用.find_element_by_id选择器代替xpath。如果您不能输入ID,请尝试(至少出于调试目的)使用full_xpath。通常尝试避免使用full_xpath ,因为它很容易与最小的网页结构更改不同步,但是对于调试-这是一个很好的资源)。