python selenium中的NoSuchElementException
我正在尝试向inputbox提供输入。我也尝试过使用find\u by\u d/name和xpath。但是仍然得到 文件“C:\Users\1024983\AppData\Local\Programs\Python\37\lib\site packages\selenium\webdriver\remote\webdriver.py”,第978行,在find\u元素中 'value':value})['value'] 文件“C:\Users\1024983\AppData\Local\Programs\Python\37\lib\site packages\selenium\webdriver\remote\webdriver.py”,执行中第321行 self.error\u handler.check\u响应(响应) 文件“C:\Users\1024983\AppData\Local\Programs\Python\37\lib\site packages\selenium\webdriver\remote\errorhandler.py”,第242行,在check\u响应中 引发异常类(消息、屏幕、堆栈跟踪) selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法定位元素:{“方法”:“css选择器”,“选择器”:“[name=“combobox-1023-inputEl”]” 用名字python selenium中的NoSuchElementException,python,selenium,xpath,css-selectors,webdriverwait,Python,Selenium,Xpath,Css Selectors,Webdriverwait,我正在尝试向inputbox提供输入。我也尝试过使用find\u by\u d/name和xpath。但是仍然得到 文件“C:\Users\1024983\AppData\Local\Programs\Python\37\lib\site packages\selenium\webdriver\remote\webdriver.py”,第978行,在find\u元素中 'value':value})['value'] 文件“C:\Users\1024983\AppData\Local\Progr
your_input = driver.find_element_by_name("combobox-1023-inputEl")
your_input.clear()
your_input.send_keys("Coke")
driver.find_element_by_name("combobox-1023-inputEl").send_keys(Keys.ENTER)
time.sleep(2)
通过使用id
driver.find_element(By.ID, "combobox-1023-inputEl").click()
driver.find_element(By.ID, "combobox-1023-inputEl").send_keys("Coke")
输入框
<input id="combobox-1023-inputEl" type="text" role="combobox" class="x-form-field x-form-required-field x-form-text" autocomplete="off" name="combobox-1023-inputEl" style="width: 100%;">
所需元素是一个动态元素,因此要发送元素中的字符序列,您必须诱导WebDriverWait使
元素成为可点击的()
,并且您可以使用以下任一选项:
- 使用
:CSS\u选择器
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input.x-form-field.x-form-required-field.x-form-text[id^='combobox'][name$='inputEl']"))).send_keys("Coke")
- 使用
:XPATH
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@class='x-form-field x-form-required-field x-form-text' and starts-with(@id,'combobox')][contains(@name,'inputEl')]"))).send_keys("Coke")
- 注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
参考文献 您可以在以下内容中找到详细的相关讨论:
1023
是动态的吗?试试这个你的\u input=driver。通过\u css\u选择器(“.x-form-field.x-form-required-field.x-form-text[id*='-inputEl'][name*='-inputEl'])查找\u元素\u
id不是动态的,总是1023@KunduK@DivyaMani:以上css选择器是否有效?如果没有,则检查必须有一个iframe.WebDriverWait(driver,20)。直到(EC.element_to_be_可点击((By.XPATH,“//input[@class='x-form-field x-form-required-field x-form-text'并以(@id,'combobox')][包含(@name,'inputEl')]))开头)。发送密钥(“卡拉运营有限公司”)文件“C:\Users\1024983\AppData\Local\Programs\Python\37\lib\site packages\selenium\webdriver\support\wait.py”,第80行,直到引发TimeoutException(消息、屏幕、堆栈跟踪)selenium.common.exceptions.TimeoutException:Message:-即使在页面加载失败后仍会获取此消息completed@DivyaMani在查看更新的答案时,我提供了关于如何解决NoTouchElementException的讨论的链接。