简单的selenium问题,求解惑

问题遇到的现象和发生背景

纯小bai,想请教一下在如下情况下如何通过selenium的find_element去点击button

问题相关代码,请勿粘贴截图

<button class="btn-change" data-id="1" data-type="2" data-point="100" 删>A </掉button>
<button class="btn-change" data-id="2" data-type="2" data-point="100" 删>A </掉button>
网页上有这两个按钮(删掉是为了防吞代码),我一开始的思路就是它们的data id不同,但是在我尝试
driver.find_element(By.LINK_TEXT,"2").click()
driver.find_element(By.ID,"2").click()
driver.find_element(By.NAME,"2").click()
driver.find_element(By.XPATH,"2").click()
这几种方法后都是报错,应该是我引用的方式的名称不对
单独运行
driver.find_element(By.CLASS_NAME, "btn-change").click()
这行代码可以按下按钮,但是会把两个按钮全都按了
我想请教一下怎么去按下其中的一个,比如id为2的按钮

用xpath定位就可以:

driver.find_element(By.XPATH,'//*[@data-id="2"]').click()

那个元素必须有id这个属性,才能找到。比如:

# <button class="btn-change" id="2" name="button2" data-type="2" data-point="100">A </button>
# 根据id查找元素
driver.find_element(By.ID, "2").click()
# 根据name查找元素
driver.find_element(By.NAME, "button2").click()

你只要定位一个按钮,那你为什么要用class去定位,明显两个按钮的class是一样的,你可以用id的值去定位啊,id又不一样,BY.ID

看下这篇博客,也许你就懂了,链接:关于selenium在爬虫中的应用