Python 如何搜索两个驱动程序。通过部分链接文本查找元素

Python 如何搜索两个驱动程序。通过部分链接文本查找元素,python,selenium,automation,bots,Python,Selenium,Automation,Bots,我正在尝试创建一个自动机器人,从supreme python/selenium购买物品 当我在产品页面上时,我使用驱动程序。通过部分链接文本(“Flight Pant”)查找元素以查找我想要购买的产品,但是我还想选择产品的颜色,因此我使用驱动程序。通过部分链接文本(“黑色”)查找元素但通过这样做,我得到的是页面上的第一件黑色产品,而不是黑色的飞行裤。你知道我将如何实现这个目标吗 这是我试图实现这一目标的网站链接 注意-我无法使用xpath进行此操作,因为产品每周都会更改,因此我无法在产品在网站

我正在尝试创建一个自动机器人,从supreme python/selenium购买物品

当我在产品页面上时,我使用
驱动程序。通过部分链接文本(“Flight Pant”)查找元素以查找我想要购买的产品,但是我还想选择产品的颜色,因此我使用
驱动程序。通过部分链接文本(“黑色”)查找元素
但通过这样做,我得到的是页面上的第一件黑色产品,而不是黑色的飞行裤。你知道我将如何实现这个目标吗

这是我试图实现这一目标的网站链接

注意-我无法使用xpath进行此操作,因为产品每周都会更改,因此我无法在产品在网站上上线之前获取产品的xpath


如果您有任何建议或指导,我们将不胜感激。

您可以使用XPath,但操作要稍微复杂一些。XPath应该是:

driver.find_element_by_xpath('//*[contains(text(), "Flight Pant")]/../following-sibling::p/a[contains(text(), "Black")]')
假设页面的结构每周不变。。。要解释我的XPath,请执行以下操作:

/*[包含(text(),“Flight Pant”)]

选择包含文本“Flight Pant”的任何节点。这些都是


因此,我们需要转到父元素并找到它的同级元素,即
元素

/a[包含(文本(),“黑色”)]

现在转到文本为黑色的
标记


XPath没有其他替代方法的原因是,没有唯一的方法通过任何其他方式(标记名、类、链接文本等)来标识所需的元素。

通过链接文本“Flight pants”找到元素后,迭代每个找到的结果并提取其css颜色属性。这是一个伪代码。您必须微调特定的颜色提取web元素

elements = driver.find_elements_by_partial_link_text("Flight Pants")

for element in elements :
  if(element.get_css_value('color').lower() == "black")
    element.click()
    break

您好,Mangohero1,我已经测试了您提供的代码,它适用于大多数项目,但是当在bags页面上测试它时,发现一个黑色的肩包和该页面上的一些其他项目并不总是有效,我在附件页面和hats页面上遇到相同的问题。知道为什么会这样吗?任何建议或指导都是非常合适的,再次感谢您提供的代码。任何时候:)将我链接到其中一个页面,我会看看会有什么问题:)请您查看此页面:)以下是链接,我的“包”页面不会显示黑色的肩包。至于另外两个,我没有遇到任何问题。。这可能是您将
文本
部分放入XPath的方式。例如,在上,如果您想要黑色Supreme®/North Face®Mountain 6-Panel帽子,文本操作符也会匹配部分文本。所以,仅仅放上6片的帽子就可以了,这是不够的。所有
元素
都有一个黑色作为其CSS值。您正在调用链接文本颜色上的方法。。。所有这些都是黑色的:P
elements = driver.find_elements_by_partial_link_text("Flight Pants")

for element in elements :
  if(element.get_css_value('color').lower() == "black")
    element.click()
    break