简体   繁体   English

ElementNotInteractableException:消息:使用 Selenium Python 在搜索字段中发送文本的元素不可交互错误

[英]ElementNotInteractableException: Message: element not interactable error sending text in search field using Selenium Python

I try to use send_keys on a website, which gives me an error of element not interatable.我尝试在网站上使用 send_keys,这给了我元素不可交互的错误。

Here is my code below:下面是我的代码:

import selenium
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.select import Select
from selenium.webdriver.common.action_chains import ActionChains
import time

chrome_optionsme = Options()
chrome_optionsme.add_argument("--incognito")
chrome_optionsme.add_argument("--window-size=1920x1080")
driver = webdriver.Chrome(options=chrome_optionsme, 
                          executable_path="/Users/chueckingmok/Desktop/html/chromedriver")

url='https://thelubricantoracle.castrol.com/industrial/en-DE'
driver.get(url)
time.sleep(5)

welcome_sec_one=WebDriverWait(driver,10).until(
    EC.presence_of_element_located((By.XPATH,'//*[@id="ctl00_termsPopup_lbConfirm"]'))
    )
welcome_sec_one.click()

time.sleep(5)



driver.find_element_by_xpath("//input[@class='search'[@id='txtSearch']").send_keys("Example")

![Uploaded the error image][1] ![上传错误图片][1]

Here is the code 

ElementNotInteractableException           Traceback (most recent call last)
<ipython-input-2-1415cecd56f9> in <module>
----> 1 driver.find_element_by_xpath("//input[@class='search'][@id='txtSearch']").send_keys("Example")

/Applications/anaconda3/lib/python3.7/site-packages/selenium/webdriver/remote/webelement.py in send_keys(self, *value)
    477         self._execute(Command.SEND_KEYS_TO_ELEMENT,
    478                       {'text': "".join(keys_to_typing(value)),
--> 479                        'value': keys_to_typing(value)})
    480 
    481     # RenderedWebElement Items

/Applications/anaconda3/lib/python3.7/site-packages/selenium/webdriver/remote/webelement.py in _execute(self, command, params)
    631             params = {}
    632         params['id'] = self._id
--> 633         return self._parent.execute(command, params)
    634 
    635     def find_element(self, by=By.ID, value=None):

/Applications/anaconda3/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py in execute(self, driver_command, params)
    319         response = self.command_executor.execute(driver_command, params)
    320         if response:
--> 321             self.error_handler.check_response(response)
    322             response['value'] = self._unwrap_value(
    323                 response.get('value', None))

/Applications/anaconda3/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py in check_response(self, response)
    240                 alert_text = value['alert'].get('text')
    241             raise exception_class(message, screen, stacktrace, alert_text)
--> 242         raise exception_class(message, screen, stacktrace)
    243 
    244     def _value_or_default(self, obj, key, default):

ElementNotInteractableException: Message: element not interactable
  (Session info: chrome=83.0.4103.116)

I think the problem is that I cannot locate the element eventually.我认为问题在于我最终无法找到该元素。 So, that's why the element not interactable.所以,这就是元素不可交互的原因。 btw, the website link: https://thelubricantoracle.castrol.com/industrial/en-DE# I want to use the search button.顺便说一句,网站链接: https://thelubricantoracle.castrol.com/industrial/en-DE#我想使用搜索按钮。

Anyone can help?任何人都可以帮忙吗?

This error message...此错误消息...

ElementNotInteractableException: Message: element not interactable

...implies that the WebElement with whom you are trying to interact isn't interactable (isn't in interactable state) at that point of time. ...意味着您尝试与之交互的WebElement在该时间点不可交互(不处于可交互状态)。

The two(2) main reasons for this error are:此错误的两个 (2) 主要原因是:

  • Either you are trying to interact with a wrong/mistaken element.您正在尝试与错误/错误的元素进行交互。
  • Or you are invoking click() too early even before the element turns clickable / interactable .或者您在元素变为可点击/可交互之前过早调用click()

To send a character sequence with in the search field you you have to induce WebDriverWait for the element_to_be_clickable() and you can use the following Locator Strategies :要在搜索字段中发送字符序列,您必须为element_to_be_clickable()诱导WebDriverWait并且可以使用以下定位器策略

Code Block:代码块:

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

options = webdriver.ChromeOptions() 
options.add_argument("start-maximized")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
driver = webdriver.Chrome(options=options, executable_path=r'C:\WebDrivers\chromedriver.exe')
driver.get("https://thelubricantoracle.castrol.com/industrial/en-DE")
WebDriverWait(driver, 20).until(lambda driver: driver.execute_script('return document.readyState') == 'complete')
time.sleep(3)
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[@class='button primary' and contains(@id, 'termsPopup_lbConfirm')]"))).click()
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@id='search-init']"))).click()
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@class='search']"))).send_keys("Example")

Browser Snapshot:浏览器快照:

嘉实多


Reference参考

You can find a couple of relevant detailed discussions in:您可以在以下位置找到一些相关的详细讨论:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 ElementNotInteractableException:消息:元素不是元素不可交互错误使用 Selenium 和 Python 将文本发送到 Email 字段 - ElementNotInteractableException: Message: element not element not interactable error sending text to Email field using Selenium and Python ElementNotInteractableException:消息:使用 Selenium 和 Python 将文本发送到 Quora 上的电子邮件字段时,元素不可交互错误 - ElementNotInteractableException: Message: element not interactable error while sending text to Email field on Quora using Selenium with Python ElementNotInteractableException:消息:使用 Selenium 和 Python 向输入字段发送文本时键盘错误无法访问元素 - ElementNotInteractableException: Message: Element is not reachable by keyboard error sending text to input field using Selenium and Python ElementNotInteractableException:元素不可交互错误将文本发送到电子邮件字段 - ElementNotInteractableException: element not interactable error sending text to Email field Python selenium ElementNotInteractableException:消息:元素不可交互 - Python selenium ElementNotInteractableException: Message: element not interactable Python 中的 Selenium:ElementNotInteractableException:消息:元素不可交互 - Selenium in Python: ElementNotInteractableException: Message: element not interactable ElementNotInteractableException:尝试使用 Selenium 和 Python 在 www.finanzen.net 上搜索股票时出现元素不可交互错误 - ElementNotInteractableException: element not interactable error while trying to search for stock on www.finanzen.net using Selenium and Python selenium.common.exceptions.ElementNotInteractableException:消息:将文本发送到 contenteditable div 元素时元素不可交互 - selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable while sending text to contenteditable div element selenium.common.exceptions.ElementNotInteractableException:消息:使用Selenium和Python插入值时元素不可交互 - selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable while inserting value using Selenium and Python 错误是“selenium.common.exceptions.ElementNotInteractableException:消息:元素不可交互” - error is “selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable”
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM