Selenium:如何点击拥有相同class属性的多个按钮?
解决Selenium点击同class多个按钮的问题
你当前用的find_element只会返回第一个匹配的元素,要获取所有同class的按钮,得用复数形式的find_elements,它会返回所有匹配元素的列表,之后你可以通过索引、遍历或者文本匹配来点击目标按钮。
方法1:点击指定位置的按钮
列表索引从0开始,比如要点击第二个按钮(文本是"Example Blog"),可以这样写:
# 获取所有blue-button按钮 buttons = driver.find_elements(By.CLASS_NAME, 'blue-button') # 点击第二个按钮(索引1) buttons[1].click()
方法2:遍历点击所有按钮
如果需要依次点击所有同class的按钮,直接循环列表即可:
buttons = driver.find_elements(By.CLASS_NAME, 'blue-button') for button in buttons: button.click() # 注意:如果点击后页面跳转/刷新,需要重新获取元素列表,否则会报错 # 若有页面变化,可在循环内重新定位: # buttons = driver.find_elements(By.CLASS_NAME, 'blue-button')
方法3:按按钮文本点击特定按钮
如果知道目标按钮的文本内容,也可以直接筛选后点击,比如点击文本为"Fale com a gente"的按钮:
buttons = driver.find_elements(By.CLASS_NAME, 'blue-button') for button in buttons: if button.text == "Fale com a gente": button.click() break
内容的提问来源于stack exchange,提问作者Matheus Henrique
相关产品推荐
相关产品推荐

