如何找到包含特定类值的元素?

问题描述 投票:2回答:3

如果类在类中包含更多值,则脚本无法找到元素。例如这个类:

<a class="a-link-normal s-access-detail-page  s-color-twister-title-link a-text-normal">

我想只使用类--s-access-detail-page找到这个元素。

通过查找这样的元素,我收到一个错误,找不到元素:

find_element_by_css_selector("a[class*='s-access-detail-page']")

如果我正在寻找一个包含以下类的元素:

a-link-normal a-text-normal

页面上的类:

解析URL是亚马逊:https://www.amazon.com/s?k=smart+watches&page=1需要获取产品URL。

python selenium
3个回答
1
投票

您只能使用以下CSS选择器:

.s-access-detail-page

希望它能帮到你!


0
投票

尝试其中任何一个。这应该工作。

find_element_by_css_selector("a.a-link-normal")

要么

find_element_by_css_selector(".a-link-normal")

要么

find_element_by_css_selector("a.s-access-detail-page")

要么

find_element_by_css_selector("a.s-color-twister-title-link")

0
投票

确保您有一个等待,您只能使用一个简单的类选择器

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

url = 'https://www.amazon.com/s?k=smart+watches&page=1'
d = webdriver.Chrome()
d.get(url)
links = WebDriverWait(d,10).until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, ".s-access-detail-page")))
linkUrls = [link.get_attribute('href') for link in links]
print(linkUrls)

© www.soinside.com 2019 - 2024. All rights reserved.