请帮助我,我正在尝试选择链接的图片(网站上的培训师)
这是我的代码:
login = browser.find_element_by_xpath("a[title=\"ACG Air Moc 3.0 'Cargo Khaki/Oil Green' Release Date\"]")
这是检查元素代码
img src="https://secure-images.nike.com/is/image/DotCom/CI9367_301_A_PREM?$SNKRS_COVER_WD$&align=0,1" alt="ACG Air Moc 3.0 'Cargo Khaki/Oil Green' Release Date" title="ACG Air Moc 3.0 'Cargo Khaki/Oil Green' Release Date" class="image-component mod-image-component u-full-width" style="opacity: 1; transition: opacity 1s ease 0s;"
这是我得到的错误:
selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法找到元素:{“ method”:“ xpath”,“ selector”:“ a [title =” ACG Air Moc 3.0'Cargo Khaki / Oil绿色发布日期“]”}
我正在使用Pycharm
答案 0 :(得分:0)
<img>
(不是<a>
)不是html的根,因此您需要在xpath中使用//img
。您还需要在@
title
browser.find_element_by_xpath("//img[@title=\"ACG Air Moc 3.0 'Cargo Khaki/Oil Green' Release Date\"]")
答案 1 :(得分:0)
根据错误,Selenium无法找到该元素。 转到检查元素。 找到所需的图像。 右键单击该元素,然后转到“复制”->“复制Xpath”。 使用该xpath。
答案 2 :(得分:0)
您似乎很接近。但是,由于所需元素是<img>
节点而不是使用a
,因此您需要使用 //img
,而您正在使用path在属性名称之前添加@
,因此您的代码行将为:
login = browser.find_element_by_xpath("//img[@title=\"ACG Air Moc 3.0 'Cargo Khaki/Oil Green' Release Date\"]")
但是,更好的方法是使用以下多个属性:
login = browser.find_element_by_xpath("//img[@class='image-component mod-image-component u-full-width' and contains(@title, 'Cargo Khaki')][starts-with(@alt, 'ACG Air Moc 3') and contains(@title, 'Oil Green')]")