如何在python中使用selenium查找具有相同名称的多个产品的特定产品

如何在python中使用selenium查找具有相同名称的多个产品的特定产品,python,selenium,Python,Selenium,我正在制作一个supreme机器人,我希望它在下降时找到一个特定的产品。 但它们是多个同名的产品,比如我写的时候 driver.find_element_by_partial_link_text("Cutout Logo Crewneck Violet").click() 它没有找到它,但如果我改变了剪纸标志Crewneck紫罗兰只是紫罗兰它点击紫罗兰之一。或者,如果我从Cutour徽标Crewneck中取出紫罗兰色,它会单击它找到的第一个不是紫罗兰色的图标 我想这是因为颜色和名字是分开的,但

我正在制作一个supreme机器人,我希望它在下降时找到一个特定的产品。 但它们是多个同名的产品,比如我写的时候

driver.find_element_by_partial_link_text("Cutout Logo Crewneck Violet").click()
它没有找到它,但如果我改变了剪纸标志Crewneck紫罗兰只是紫罗兰它点击紫罗兰之一。或者,如果我从Cutour徽标Crewneck中取出紫罗兰色,它会单击它找到的第一个不是紫罗兰色的图标

我想这是因为颜色和名字是分开的,但我不确定

<li><div class="inner-article"><a style="height:150px;" 
href="/shop/sweatshirts/al1qigtzr/iki14srab"><img width="150" height="150" 
src="//assets.supremenewyork.com/188962/vi/hZiiM3_KhGM.jpg" alt="Hziim3 khgm">
<div class="sold_out_tag">sold out</div></a><div class="product-name"><a 
class="name-link" href="/shop/sweatshirts/al1qigtzr/iki14srab">Cutout Logo 
Crewneck</a></div><div class="product-style"><a class="name-link"
href="/shop/sweatshirts/al1qigtzr/iki14srab">Violet</a></div></div></li>

  • 我希望它按名称查找产品,因为supreme产品销售很快,我没有时间获取产品的xpath。

    这是一个有趣的问题。我会使用WebElements的
    .text
    来查找匹配项。您只需收集元素(
    divs
    ,其中包括产品名称和颜色)中的文本,然后在这些元素中找到具有所需产品名称和颜色的元素

    试试这个:

    通过导入从selenium.webdriver.common.by导入 driver=webdriver.Chrome() 驱动程序。隐式等待(4) 司机,上车https://www.supremenewyork.com/shop/all/sweatshirts') #收集每页的所有产品 products=driver.find_元素(By.CSS_选择器'div.internal-article') #在此处输入搜索查询 搜索='Cutout Logo Crewneck Violet' search\u words=search.split() 发现产品=错误 #在产品WebElements中按文本搜索匹配项 对于产品中的p: 如果全部(在p.text中搜索词,在搜索词中搜索词): 找到的产品=p 找到产品。如果找到产品,请单击(),否则打印('未找到产品')
    我希望这会有帮助,祝你好运。

    在我相信之前,我已经回答了这个确切的问题。该产品是唯一的,或者可能有多个同名产品?非常感谢您的解决方案正在工作,但是如果找不到该产品,我如何使其刷新页面直到找到它。我会在收集产品之前添加一个循环,在循环的每次迭代后,添加一个条件:
    如果找不到\u product:driver.refresh()其他:通过
    。在进行刷新之前,您可能需要添加一个
    sleep(60)
    ,因此您的脚本需要等待1分钟才能再次检查。