我想用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]]")
以上方法均无效。
答案 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]表示单击第二个元素。