selenium 按钮,相同 class,onclick 搜索很多 '

selenium button , same class, onclick search with many '

我正在尝试单击 "Attack" 按钮。有 4 个具有相同文本的按钮。有一些代码正在处理它,但我无法弄清楚。你能帮我选择我想要的任何按钮吗?感谢帮助...

按钮 1 :

<button class="expedition_button awesome-button " onclick="attack(null, '2', 1, 0, '')">Attack</button>

按钮 2:

<button class="expedition_button awesome-button " onclick="attack(null, '2', 2, 0, '')">Attack</button>

按钮 3:

<button class="expedition_button awesome-button " onclick="attack(null, '2', 3, 0, '')">Attack</button>

按钮 4:

<button class="expedition_button awesome-button " onclick="attack(null, '2', 4, 0, '')">Attack</button>

我试过下面这些代码 :

        self.web.find_element_by_xpath("(//button[@class=expedition_button awesome-button 'Attack'])[3]")

我还想了解如何使用之前定义的任何数据,而不是 class 名称或按钮名称或 ID..?

要获得特定按钮,请尝试使用 class 和索引,或者尝试使用您觉得舒服的文本和索引。

driver.find_element_by_xpath("(//button[text()[contains(.,'Attack')]])[indexval]")
driver.find_element_by_xpath("(//button[@class='expedition_button awesome-button '])[indexval]")

对于 Button1:

driver.find_element_by_xpath("(//button[text()[contains(.,'Attack')]])[1]")

driver.find_element_by_xpath("(//button[@class='expedition_button awesome-button '])[1]")

与按钮 2、3 和 4 类似,只需增加索引值即可。

另一种方法。

#You will get all 4 buttons xpath in a list
elements=driver.find_elements_by_xpath("//button[text()[contains(.,'Attack')]]")
#Now Iterate this It will click each button
for element in elements:
    print(element.text)
    element.click()