【问题标题】:Selenium: How to click on the install plugins button?Selenium:如何点击安装插件按钮?
【发布时间】:2014-08-13 15:47:22
【问题描述】:

我使用 Selenium 以我选择的给定 URL 启动 Firefox 浏览器。一些网站要求用户允许单击出现在网站页面顶部的按钮来安装一些插件,以便正确查看(加载)内容。



我怎么能自动点击那个按钮?

【问题讨论】:

  • 你知道哪些插件会丢失吗?
  • @alecxe 不,我不知道。这会对代码本身产生影响吗?
  • 隐藏消息是一个选项还是您需要实际安装插件?
  • @alecxe 我不想选择性地隐藏该消息,我想自动安装这些插件。我需要这个进行安全测试。
  • @alecxe 我甚至发现了很多你帮助他人的答案:所以我知道你的答案比最好的课程/教程更好:)

标签: python selenium python-3.x


【解决方案1】:

此消息不是由 javascript 生成的,它是浏览器本身。因此,您可以控制它的唯一方法是通过预定义的功能或自定义配置文件:

  • 设置plugins.hide_infobar_for_missing_plugin 不会让弹出窗口出现的设置

    from selenium import webdriver
    
    profile = webdriver.FirefoxProfile()
    profile.set_preference('plugins.hide_infobar_for_missing_plugin', True)
    
    driver = webdriver.Firefox(firefox_profile=profile)
    
  • plugin.default_plugin_disabled 设置为False(未测试)

    from selenium import webdriver
    
    profile = webdriver.FirefoxProfile()
    profile.set_preference('plugin.default_plugin_disabled', False)
    
    driver = webdriver.Firefox(firefox_profile=profile)
    

另见:

【讨论】:

  • 是的,你是对的,它不是 JS 警报。我接受您的回答,但现在无法对其进行测试,因为根据您过去的所有慷慨帮助,我只能相信您提供给我或其他人的信息。我对你的所有尊重,亚历山大。
  • @Begueradj 它可能不起作用,因为我没有亲自测试过。如果它不起作用,我还有其他一些想法 - 让我知道它是否有帮助。谢谢!
  • 别担心,亲爱的亚历山大,我可以处理任何最终出现的错误,但现在我有足够的时间来处理与过去几个月不同的问题。我相信你至少给了我正确的提示,所以以后一切都会变得更简单,因为我现在有时间。谢谢。
【解决方案2】:

如果是javascript警告框,可以使用switch_to_alert:

alert = browser.switch_to_alert()
alert.accept()

如果它们不是网页的一部分,您将需要使用 AutoIt 等工具与它们进行交互。

【讨论】:

  • 感谢您的帮助。但是我暂时无法测试它。当我在另一台笔记本电脑上时,我会对其进行测试,看看它是否有效。我只是想知道我们是否真的可以将其视为警报而不是按钮或其他东西。
  • 不,它们不是 JS 警告框。
猜你喜欢
  • 2019-02-23
  • 2020-06-24
  • 2014-02-16
  • 2016-05-08
  • 2021-09-14
  • 2018-05-11
  • 2021-02-26
  • 1970-01-01
相关资源
最近更新 更多