[请帮助我,我正在尝试选择链接的图片(网站上的培训师)
这是我的代码:
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 Green '发布日期“]”}
我正在使用Pycharm
根据错误,Selenium无法找到元素。转到检查元素。找到所需的图像。右键单击该元素,然后转到“复制”->“复制Xpath”。使用该xpath。
<img>
(不是<a>
)不是html的根,因此您需要在xpath中使用//img
。您还需要在@
title
browser.find_element_by_xpath("//img[@title=\"ACG Air Moc 3.0 'Cargo Khaki/Oil Green' Release Date\"]")
U正在处理<img>
元素,而不是<a>
超链接元素。
似乎您距离很近。但是,由于所需的元素是<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')]")