如果该类在该类中包含更多值,则脚本无法找到元素。 例如,此类:
<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
页面上的课程
解析网址为Amazon:https://www.amazon.com/s?k=smart+watches&page=1
需要获取产品网址。
答案 0 :(得分:1)
您只能使用以下CSS选择器:
.s-access-detail-page
希望对您有帮助!
答案 1 :(得分:0)
尝试任何一种方法。这应该可行。
validationSchema: Yup.object({
idRisk: Yup.number().required(),
dateB: Yup.mixed().when("idRisk", {
is: Risk.PRESENT,
then: Yup.mixed().required(),
otherwise: Yup.mixed()
}),
dateA: Yup.mixed().when("idRisk", {
is: Risk.PRESENT,
then: Yup.mixed().required(),
otherwise: Yup.mixed()
})
.when(["dateA", "dateB"],
(dateA, dateB) => {
if (dateA.isBefore(dateB))
return this.required();
}
)
})
OR
find_element_by_css_selector("a.a-link-normal")
OR
find_element_by_css_selector(".a-link-normal")
OR
find_element_by_css_selector("a.s-access-detail-page")
答案 2 :(得分: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)