无法通过 Instagram 定位/与按钮交互。硒

Posted

技术标签:

【中文标题】无法通过 Instagram 定位/与按钮交互。硒【英文标题】:Can't locate / interact with button on Instargram via. selenium 【发布时间】:2022-01-13 20:09:21 【问题描述】:

我正在尝试使用 selenium 创建一个简单的 python 程序,该程序需要找到并单击关注按钮。

这是 html 代码:

<div class="             qF0y9          Igw0E   rBNOH          YBx95   ybXk5    _4EzTm                      soMvl                                                                                        " id="f2d16737c928a4">

<button class="sqdOP  L3NKy   y3zKF     " type="button">Abonnieren</button>
</div>

我的python代码:

example = driver.find_element_by_xpath("//button[contains(@class,'sqdOP  L3NKy   y3zKF     ')]")
example.click

每次我尝试它都会给我:“selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element”

如果您想查看该网站,您需要登录并转到 Instagram 建议您应该关注的人的建议页面:https://www.instagram.com/explore/people/

【问题讨论】:

这个按钮是你试图点击关注按钮吗? @Luke Hamilton 是的 让我知道您对我的回答的看法!乐于助人。 【参考方案1】:
driver.find_element_by_xpath("//button[.='Abonnieren']").click()

只需查找带有该文本的按钮并单击它。

【讨论】:

【参考方案2】:

您共享的 XPATH 似乎是一个随机字符串,不会轻易地在其他关注按钮中迭代。我建议您通过 HTML 页面获取“完整的 XPATH”,这样您就可以进行循环操作。点击关注按钮的循环见以下代码:

count=1
while True:
      try:
            driver.find_element_by_xpath("/html/body/div[1]/div/div/section/main/div/div[2]/div/div/div["+str(count)+")]/div[3]/button").click()
            count=count+1
      except:
            break

【讨论】:

以上是关于无法通过 Instagram 定位/与按钮交互。硒的主要内容,如果未能解决你的问题,请参考以下文章

抓取动态数据硒 - 无法定位元素

当元素不是按钮且在 Selenium 中不可定位时,如何查找在网页中单击了哪个元素? (HTML,硒)[关闭]

有没有办法阻止硒被重定向到登录?不使用 api 抓取 Instagram

如何使用 selenium (Python) 定位 Instagram 关注按钮

收藏视图定位像 instagram app swift

如何解决硒循环中的这个错误? InvalidSelectorException:消息:无效选择器:无法使用 xpath 定位元素