为什么我在 selenium 中找不到按钮?

问题描述

我正在为 Instagram 编写一个自动关注程序,在视频中我看到这个人写了那个代码,程序跟着每个人都写了“关注”,但对我来说它不起作用。我已经在 stackoverflow 上寻找了不同的问题,但所有的答案不会有帮助。往下看:

#the method of the video i watched
a = 1
for i in range(5):
    for i in range(1,11):
        browser.find_element_by_xpath('//[button(text()="Follow")]')\
             .click()

我也尝试了上面发布的代码的各种方法,但一切都不起作用。我能做什么?

错误代码: 语法错误:无法在“文档”上执行“评估”:字符串“//[button(text()="Follow")]”不是有效的 XPath 表达式。

解决方法

这里是正确的语法:

browser.find_element_by_xpath('//button[text()="Follow"]')

如果有许多按钮共享相同的文本 Follow 并且您想点击它们,您可以:

result = browser.find_elements_by_xpath('//button[text()="Follow"]')

然后在它之后,遍历它们并一一点击它们:

for button in result:
    button.click()