当前位置: 首页 > 知识库问答 >
问题:

python selenium中的NoSuchElementException

潘星阑
2023-03-14

我正在尝试向inputbox提供输入。我也尝试过使用find\u by\u d/name和xpath。但是仍然得到

文件"C:\用户\1024983\AppData\本地\程序\Python\Python\Python37\lib\site-包\selenium\webDrive\远程\webdriver.py",第978行,find_element'value': value})['value']文件"C:\用户\1024983\AppData\本地\程序\Python\Python37\lib\site-包\selenium\webDrive\远程\webdriver.py",第321行,在执行self.error_handler.check_response(响应)文件"C:\用户\1024983\AppData\本地\程序\Python\Python37\lib\site-包\selenium\web驱动\远程\errorhandler.py",第242行,在check_response提高exception_class(消息,屏幕,stackTrace)selenium.common.exceptions.NoSuchElementExcture:消息:没有这样的元素:无法定位元素:{"方法":"css选择器","选择器":"[name="combobox-1023-inputEl"]"}

用名字

  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%;">

共有1个答案

龚弘业
2023-03-14

所需元素是动态元素,因此要发送元素中的字符序列,您必须诱导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
    

    您可以在以下内容中找到详细的相关讨论:

    • 当使用Chrome时,Selenium“Selenium.common.exceptions.NoSuchElementException”

  •  类似资料:
    • 问题内容: 我正在尝试使用pythonselenium登录到网页。我找到了一个元素并将其启用,但是当我尝试向其发送send_keys()时出现错误。错误输出的主要内容(我认为)是 我的代码是 输出是 那么,我该怎么办? 问题答案: 为了使用户名字段可见,您需要将光标移动到登录链接:

    • 问题内容: 我用python与selenium结合编写了一个脚本,以从其着陆页中抓取不同文章的链接,并通过跟踪引向其内页的url最终获得每个文章的标题。尽管我在这里解析的内容是静态内容,但我还是使用了selenium来查看它在多处理中的工作方式。 但是,我的意图是使用多处理进行抓取。到目前为止,我知道selenium不支持多处理,但似乎我错了。 我的问题:当使用多处理运行selenium时,如何减

    • 问题内容: 我创建了一个小的屏幕抓取器,并且一切似乎都运行良好,信息被提取并保存在数据库中。我唯一遇到的问题是有时Python不使用,因此它尝试在错误的页面上获取信息并崩溃。我尝试添加一个,但有时仍然无法正常工作。我正在尝试对其进行优化,以尽可能减少时间。因此,使其hibernate30秒似乎不是一个好的解决方案。 问题答案: 这是最好的解决方案。不能保证back()和forward()方法有效。

    • 问题内容: 我一直在努力找出我的代码发生了什么,但我无能为力。每当我运行程序时,都会在以下图片中出现此错误。我正在使用python 3.4.4和它的selenium最新版本。 Windows 10 错误图片 问题答案: 您没有提到您的FF版本是什么,我认为它是最新的。无论如何,您都需要使用低于47的FF或有时间切换到MarionetteDriver 这是一些有用的信息Selenium 2.53在F

    • 问题内容: 我在python中有以下代码 我的问题是在test_home_page函数之后,firefox实例关闭并为下一个test_whatever函数再次打开。我该怎么做,以便所有测试用例都从同一firefox实例执行。 问题答案: 在以下位置初始化firefox驱动程序:

    • 问题内容: 我尝试在exe文件中构建我的pythonselenium测试,并在许多机器上运行它,以使测试独立于环境。但是结果 .exe文件找不到seleniumwebdriver。如何在 .exe文件中包含所有selenium依赖关系?也许还有其他方法吗?是否可以制作虚拟环境并进行分发? 问题答案: 我假设您正在使用py2exe生成exe。您需要在setup.py文件中指定Selenium Web

    • 问题内容: 我想这应该工作: 启用为将来的chrome版本安排的samesite cookie限制。不是,有错误: 我可以使用chrome:// flags手动更改选项,然后查看它是否有效。但是,我想使其自动化,然后运行测试脚本来查看它。 这里有Java代码:https : //groups.google.com/forum/#!topic/ chromedriver-users/ cI8hj7e

    • 问题内容: 我对Linkedin中技能部分的“加载更多”按钮感到困惑。我 在找到按钮的xpath时收到此错误: 问题是我的元素在页面上不可见,因此我一直试图 找到一种方法来在页面上连续滚动直到按钮可见。 我正在尝试对多个配置文件进行forloop。 我的相关代码: Attempts 1. 随着 页面滚动就在元件的下方,因此该元素不再是可见的,随后发生同样的错误。 我也尝试过move_to_elem