Python selenium.common.exceptions.ElementNotInteractiableException:消息:向contenteditable div元素发送文本时元素不可交互

Python selenium.common.exceptions.ElementNotInteractiableException:消息:向contenteditable div元素发送文本时元素不可交互,python,selenium,contenteditable,sendkeys,webdriverwait,Python,Selenium,Contenteditable,Sendkeys,Webdriverwait,我有麻烦,硒发送钥匙不和谐。我正在尝试向用户发送消息 我得到的错误是: selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable HTML格式如下: xpath高亮显示的我试图发送\u键的对象如下所示: 我的代码如下 inputMessage = wait.until(EC.visibility_of_element_located((By.XPATH,"//d

我有麻烦,硒发送钥匙不和谐。我正在尝试向用户发送消息

我得到的错误是:

selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable
HTML格式如下:

xpath高亮显示的我试图发送\u键的对象如下所示:

我的代码如下

inputMessage = wait.until(EC.visibility_of_element_located((By.XPATH,"//div[contains(text(),'Message @')]/..")))

#inputMessage = driver.find_element_by_xpath("//div[contains(text(),'Message @')]/..") 

inputMessage.send_keys(msg,Keys.ENTER) 

我尝试了几种方法来解决这个错误,但都没有成功。任何帮助都将不胜感激。多谢各位

ElementNotInteractivatableException错误告诉您不能在此webElement上使用send_keys()方法。考虑到信息的缺乏,考虑到这个问题,我真的不能告诉你什么可行,但这里有一些线索:

  • 使用ActionsChains尝试在字段中输入所需内容:
  • 尝试
    inputMessage。在尝试发送密钥之前,请单击()
否则,它也发生在我身上,问题是我试图将密钥发送到div,而不是发送到div中的元素

希望能有帮助

HTML内容可编辑属性 通过使用一些JavaScript事件处理程序,您只需在几乎任何HTML元素上设置属性使其可编辑,就可以将web页面转换为完整、快速的富文本编辑器。例如,要创建用户可以编辑其内容的
元素,应:

<div contenteditable="true">
  This text can be edited by the user.
</div>
  • 使用
    XPATH

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@aria-label='Message @Ticketing' and @data-slate-editor='true'][@role='textbox']"))).send_keys(msg) 
    
  • 注意:您必须添加以下导入:

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

  • 完全正确@BigO试图在div上按enter键,但他可能想在输入字段上按enter键。您可以等待元素可见,并在找到元素时发送键WebDriverWait(driver,20)。直到(EC.visibility_of_element_located((By.XPATH,'Your_element_XPATH'))看起来您正在尝试在div上使用send_键。我将查找允许的元素,但我认为输入元素是理想的。
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@aria-label='Message @Ticketing' and @data-slate-editor='true'][@role='textbox']"))).send_keys(msg) 
    
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC