簡體   English   中英

嘗試使用 SELENIUM 查找元素時出錯

[英]Error when trying to find an element using SELENIUM

希望有人可以在這里幫助我。

我的目標是使用Python(Selenium + Chromedriver)成功連接到這個網站,並在搜索欄中成功搜索到一個地址。 我正在努力設法使用 Selenium 找到實際的搜索欄本身。HTML 代碼沒有 ID 或名稱來區分它,它只有一個 class,當我搜索 class 時,我收到一條錯誤消息無法找到。

希望這是一個簡單的修復,我只是在犯傻。 非常感謝。

PS 第一篇文章 - 請給出一些關於下次要更改的內容的提示:)

代碼

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代碼+網站HTML

這里的錯誤是您在 function 中有多個 class 名稱,只期望一個。 ValidatedSearchform-controlform-control-lg是不同的類,因為類中不能有空格。 所以你要找的是這個:

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。 你可能想調查一下

ValidatedSearch 表單控件 form-control-lg

就是所謂的多個 class 名稱。

為了找到我們使用 css 選擇器的元素。

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

也不要使用 driver.find_element_by 因為它們已貶值而不是 import By 並使用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM