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