如何使用selenium和python单击第二个html元素,它是第一个元素的副本?
我想点击一个在整个网站上复制的元素(它是一个按钮),但是我如何点击第二个按钮,而不是第一个。 下面是我要单击的按钮的代码:如何使用selenium和python单击第二个html元素,它是第一个元素的副本?,python,html,selenium,Python,Html,Selenium,我想点击一个在整个网站上复制的元素(它是一个按钮),但是我如何点击第二个按钮,而不是第一个。 下面是我要单击的按钮的代码: <a href="/us/en/outletus/laptops/thinkpad/thinkpad-x-series/ThinkPad-X280/p/20KFCTO1WW-PC0YQ4GF" class="button-called-out button-full facetedResults-cta">SHOP NOW</a> 我试着用[a]点
<a href="/us/en/outletus/laptops/thinkpad/thinkpad-x-series/ThinkPad-X280/p/20KFCTO1WW-PC0YQ4GF" class="button-called-out button-full facetedResults-cta">SHOP NOW</a>
我试着用[a]点击某个按钮,但似乎不起作用。此外,href可能会根据产品更改shop now按钮。您可以将XPath与索引a一起使用:
driver.find_element_by_xpath("(//a[.='SHOP NOW'])[{}]".format(a))
请注意,第一个元素有索引1。您可以使用
收集元素。查找元素*
elements = driver.find_elements_by_link_text('insert_value_here')
elements[0].click()
在上面的示例中,单击第一个元素
此索引
[0]
,替换为所需内容。如果您确定每次单击第二个按钮时
尝试使用下面的xpath
(//*[@class='button-called-out button-full facetedResults-cta'])[2]
如果,按钮数量不相同(可能变灰)
尝试使用findelements
List button=driver.findElements(By.xpath("//*[@class='button-called-out button-full facetedResults-cta']"));
button.size();
动态地将button.size()附加到xpath中的“2”位置,您可以单击第二个/第一个非灰色按钮这是为了什么?
List button=driver.findElements(By.xpath("//*[@class='button-called-out button-full facetedResults-cta']"));
button.size();