硒通过Xpath查找第二个元素

时间:2020-07-01 20:07:04

标签: python selenium xpath

我想用python selenium find_element_by_xpath("//button[@class='sqdOP']"),但是我有2个Button这个类,我需要第二个,所以只需要第一个。
我已经尝试过下面的代码

find_element_by_xpath("//button[@class='sqdOP'][2]")

find_element_by_xpath("//[button[@class='sqdOP']][2]")

find_element_by_xpath("//button[2][@class='sqdOP']")

find_element_by_xpath("//button[@class='sqdOP'[2]]")

以上方法均无效。

3 个答案:

答案 0 :(得分:1)

您可能正在寻找这个XPath表达式:

find_element_by_xpath("(//button[@class='sqdOP'])[2]"

只需添加(),即可在页面上获得满足特定属性条件(button)的第二个@class='sqdOP'元素。

旁注:您的第二次尝试(//[button ...)不是有效的XPath表达式。您不能以谓词开头的表达式。您需要元素名称或通配符(*)。

答案 1 :(得分:0)

使用find_elements_by_xpath代替find_element_by_xpath来获取元素列表。访问此列表中的特定索引以获取必需的元素。

答案 2 :(得分:0)

您可以尝试使用JavaScript执行器

WebElement buttton = driver.find_element_by_class_name("sqdOP")
driver.execute_script("arguments[1].click();",buttton)

arguments [1]表示单击第二个元素。