Python Selenium不会键入textarea并引发ElementNotInteractiableException
这是有问题的HTML代码:Python Selenium不会键入textarea并引发ElementNotInteractiableException,python,selenium,xpath,css-selectors,webdriverwait,Python,Selenium,Xpath,Css Selectors,Webdriverwait,这是有问题的HTML代码: <textarea rows="1" cols="1" name="text" class=""></textarea> 代码执行了,什么也没发生。我假设它选择了textarea,但没有在其中键入任何内容?或者什么也没发生。它还会找到元素,因此我假设不需要等待textarea可见。 当我不使用js并且只使用 msgElem = driver.find_element_by_css_selector("textarea[name='text']
<textarea rows="1" cols="1" name="text" class=""></textarea>
代码执行了,什么也没发生。我假设它选择了textarea,但没有在其中键入任何内容?或者什么也没发生。它还会找到元素,因此我假设不需要等待textarea可见。
当我不使用js并且只使用
msgElem = driver.find_element_by_css_selector("textarea[name='text']")
msgElem.send_keys('Whats up mate, how you doin')
它给我ElementNotInteractiableException 此错误消息
ElementNotInteractableException
…意味着WebDriver实例无法与所需的元素进行交互
分析
您使用的实际标识了中的两个元素,并且第一个匹配元素的父元素包含属性style=display:none,如下所示:
<form action="#" class="usertext cloneable warn-on-unload" onsubmit="return post_form(this, 'comment')" style="display:none" id="form-dyo">
<input type="hidden" name="thing_id" value="">
<div class="usertext-edit md-container" style="">
<div class="md">
<textarea rows="1" cols="1" name="text" class=""></textarea>
</div>
使用XPATH:
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
为这个HTML添加真实的URL,并创建最小的工作代码,以便我们可以运行它并查看问题。
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "span.title + div textarea[name='text']"))).send_keys("Sowik")
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//span[text()='message']//following::div[1]//textarea[@name='text']"))).send_keys("Sowik")
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC