提问人:hanna 提问时间:8/14/2023 最后编辑:undetected Seleniumhanna 更新时间:8/14/2023 访问量:94
无法使用 Selenium 获取元素
Unable to get an element using Selenium
问:
我无法从网站获得评级编号 https://www.hoka.com/en/us/mens-everyday-running-shoes/rincon-3/1119395.html 使用硒。
这是我所拥有的 Python 代码:
from selenium import webdriver
from selenium.webdriver.common.by import By
url = "https://www.hoka.com/en/us/mens-everyday-running-shoes/rincon-3/1119395.html"
driver = webdriver.Chrome()
driver.get(url)
res = driver.find_elements(By.TAG_NAME, 'h3')
for i in res:
print(i.text)
我得到的是空的结果。
这是我想提取的信息行:
答:
1赞
Yaroslavm
8/14/2023
#1
最好使用唯一定位器来匹配特定元素。
如果方法不能正常工作,可以通过text
get_attribute('innerText')
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
#previous code
wait = WebDriverWait(driver, 10)
rating = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '.pr-review-snapshot-snippets h3')))
print(rating.get_attribute('innerText'))
-1赞
undetected Selenium
8/14/2023
#2
理想情况下,要打印文本 4.4,您需要为 presence_of_element_located() 引入 WebDriverWait,并且可以使用以下任一定位器策略:
使用CSS_SELECTOR和文本属性:
driver.get(url='https://www.hoka.com/en/us/mens-everyday-running-shoes/rincon-3/1119395.html') print(WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.CSS_SELECTOR, "h3.pr-review-snapshot-snippets-headline"))).text)
使用 XPATH 和 :
get_attribute()
driver.get(url='https://www.hoka.com/en/us/mens-everyday-running-shoes/rincon-3/1119395.html') print(WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.XPATH, "//h3[starts-with(@class, 'pr-review-snapshot-snippets-headline')]"))).get_attribute("innerHTML"))
控制台输出:
4.4
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
您可以在如何使用 Selenium 检索 WebElement 的文本 - Python 中找到相关讨论
评论