尝试使用 SELENIUM 查找元素时出错
Error when trying to find an element using SELENIUM
希望有人能帮助我。
我的目标是使用 Python(Selenium + Chromedriver)成功连接到 this 网站,并在搜索栏中成功搜索地址。我正在努力设法使用 Selenium 找到实际的搜索栏本身。 HTML 代码没有 ID 或 NAME 来区分它,它只有一个 class,当我搜索 class 时,我收到一条错误消息说它不能找到了。
希望这是一个简单的修复,我只是在犯傻。非常感谢。
P.S 首先 post - 请给出一些关于下次更改内容的提示 :)
代码
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
此处的错误是您在一个函数中有多个 class 名称,但只需要一个。 ValidatedSearch
、form-control
和 form-control-lg
是不同的 classes,因为 classes 中不能有空格。所以你要找的是这个:
search = driver.find_element_by_class_name("ValidatedSearch")
这针对它找到的 ValidatedSearch
class 中的第一个标签。
我能够使用它
search = driver.find_element_by_class_name("ValidatedSearch")
search.send_keys("Hi My Name is Slicka Slicka Slim Shady")
我用了一个 class。我会说 Selenium iirc 只需要一个 class。我也不是主要的网页设计师,但今天遍布的这些框架几乎添加了额外的东西很烦人。当我创建 Selenium 脚本时,我越来越多地使用 xpaths。你可能想看看那个
验证搜索 form-control form-control-lg
就是所谓的多个class名字。
为了找到我们使用 css 选择器的元素。
driver.find_element(By.CSS_SELECTOR,".ValidatedSearch.form-control.form-control-lg")
也不要使用 driver.find_element_by,因为它们已折旧,而是导入并使用它。
希望有人能帮助我。
我的目标是使用 Python(Selenium + Chromedriver)成功连接到 this 网站,并在搜索栏中成功搜索地址。我正在努力设法使用 Selenium 找到实际的搜索栏本身。 HTML 代码没有 ID 或 NAME 来区分它,它只有一个 class,当我搜索 class 时,我收到一条错误消息说它不能找到了。
希望这是一个简单的修复,我只是在犯傻。非常感谢。
P.S 首先 post - 请给出一些关于下次更改内容的提示 :)
代码
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
此处的错误是您在一个函数中有多个 class 名称,但只需要一个。 ValidatedSearch
、form-control
和 form-control-lg
是不同的 classes,因为 classes 中不能有空格。所以你要找的是这个:
search = driver.find_element_by_class_name("ValidatedSearch")
这针对它找到的 ValidatedSearch
class 中的第一个标签。
我能够使用它
search = driver.find_element_by_class_name("ValidatedSearch")
search.send_keys("Hi My Name is Slicka Slicka Slim Shady")
我用了一个 class。我会说 Selenium iirc 只需要一个 class。我也不是主要的网页设计师,但今天遍布的这些框架几乎添加了额外的东西很烦人。当我创建 Selenium 脚本时,我越来越多地使用 xpaths。你可能想看看那个
验证搜索 form-control form-control-lg
就是所谓的多个class名字。
为了找到我们使用 css 选择器的元素。
driver.find_element(By.CSS_SELECTOR,".ValidatedSearch.form-control.form-control-lg")
也不要使用 driver.find_element_by,因为它们已折旧,而是导入并使用它。