【问题标题】:Error when trying to find an element using SELENIUM尝试使用 SELENIUM 查找元素时出错
【发布时间】:2022-02-09 13:49:18
【问题描述】:

希望有人可以在这里帮助我。

我的目标是使用 Python (Selenium + Chromedriver) 成功连接到this 网站,并在搜索栏中成功搜索到地址。我正在努力设法使用 Selenium 找到实际的搜索栏本身。 HTML 代码没有 ID 或 NAME 来区分它,它只有一个类,当我搜索该类时,我得到一个错误,说它找不到。

希望这是一个简单的解决方法,我只是很傻。非常感谢。

P.S 第一篇文章 - 请就下次更改的内容提供一些提示:)

代码

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

PATH = "C:\Program Files (x86)\chromedriver.exe"
driver = webdriver.Chrome(PATH)

driver.get("https://creeper.banano.cc/")
search = driver.find_element_by_class_name("ValidatedSearch form-control form-control-lg ")

错误代码

NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":".ValidatedSearch form-control form-control-lg "}

Python Code + HTML of Website

【问题讨论】:

  • 欢迎来到 Stack Overflow :) 既然你问得这么好,我想让你知道总是在代码之前和之后的行以及之前和之后的行上放置三个反引号 (```)错误。此外,粘贴完整的回溯通常是个好主意,而不仅仅是最后一行。除此之外,这比大多数人的第一个问题要好:P
  • 非常感谢!老实说,我没想到会这么快得到这么多反馈,在睡觉的 9 个小时里学到的东西比我自己阅读时学到的还要多!

标签: python html selenium selenium-chromedriver


【解决方案1】:

ValidatedSearch form-control form-control-lg

就是所谓的多类名。

为了找到我们使用css选择器的元素。

driver.find_element(By.CSS_SELECTOR,".ValidatedSearch.form-control.form-control-lg")

也不要使用 driver.find_element_by,因为它们已被折旧,而是 import By 并使用它。

【讨论】:

  • 当我使用它时,我收到一个错误,指出未定义 By。
  • 这是一个导入,所以你需要包含它。
  • 从 selenium.webdriver.common.by 导入
【解决方案2】:

这里的错误是你在一个函数中有多个类名,只需要一个。 ValidatedSearchform-controlform-control-lg 是不同的类,因为类中不能有空格。所以你要找的是这个:

search = driver.find_element_by_class_name("ValidatedSearch")

这针对它找到的ValidatedSearch 类中的第一个标签。

【讨论】:

    【解决方案3】:

    我能够让它工作

    search = driver.find_element_by_class_name("ValidatedSearch")
    search.send_keys("Hi My Name is Slicka Slicka Slim Shady")
    

    我用了一门课。我会说 Selenium iirc 只需要一个类。此外,我主要不是网页设计师,但今天流行的这些框架几乎都增加了额外的东西很烦人。当我创建 Selenium 脚本时,我越来越多地使用 xpath。你可能想调查一下

    【讨论】:

      猜你喜欢
      • 2020-10-27
      • 1970-01-01
      • 1970-01-01
      • 2022-11-14
      • 2021-06-04
      • 2021-10-25
      • 1970-01-01
      • 2021-12-18
      • 1970-01-01
      相关资源
      最近更新 更多