因此,我有一段代码,用户可以在其中输入一个颜色变量,并将其字符串称为颜色。示例链接-https://www.supremenewyork.com/shop/jackets/k56l3oteu/hjylineo1。因此,接下来我尝试使用
在网站上找到它driver.find_element_by_xpath("//a[@data-style-name='{}'".format(color.get()))
语法错误,我不确定如何使用用户之前输入的变量正确找到它。还有一个问题,当找到其中一种颜色时,如何选择该颜色作为检出选项,不确定我是否解释正确。感谢您提供任何信息
答案 0 :(得分:0)
尝试使用以下CSS选择器来标识元素:
'p.style.protect'
看起来它将唯一地标识显示所选颜色的元素。
然后,您的颜色存储在元素的内部HTML中,因此您可以使用类似的方法来获取颜色
chosenColor =
driver.find_element_by_css_selector('p.style.protect').text()
好的,我现在了解到您想使用xPath根据颜色动态选择元素。我注意到xPath
'//*[@id="details"]/ul/li[4]/a[1]'
找到右上角的元素,
'//*[@id="details"]/ul/li[4]/a[2]'
找到中右元素,依此类推...
因此,如果您可以简单地使用地图将颜色映射到数字,则类似
colorMap = {
"brown" : 1,
"cyan" : 2,
"grey" : 3,
...
}
(不确定颜色在我的示例中是否正确匹配,但希望您能理解)
然后
driver.find_element_by_xpath('//*[@id="details"]/ul/li[4]/a[' +
'colorMap.("<whatever color you are looking to select>")' + ]').click()
应选择具有指定颜色的元素。
有帮助吗?如果您有任何问题,请告诉我。
答案 1 :(得分:0)
您可以在下面使用字符串格式,但是xpath中有错误-结尾缺少]
:
driver.find_element_by_xpath("//a[@data-style-name='{}']".format(color.get()))
driver.find_element_by_xpath("//a[@data-style-name='{0}']".format(color.get()))
driver.find_element_by_xpath("//a[@data-style-name='%s']" % color.get())