【问题标题】:Automate Chrome Extensions With Selenium and Ruby使用 Selenium 和 Ruby 自动化 Chrome 扩展
【发布时间】:2016-07-20 10:48:59
【问题描述】:

我目前正在从事一个自动化项目,我需要使用 Ruby/Selenium 来发现在对 Web 应用程序进行身份验证后返回给用户的特定 http 标头。我能够很好地自动化网络应用程序;但是,当我尝试使用 Chrome 扩展程序时,浏览器会返回以下错误:

位于 chrome-extension://[extension address] 的网页可能暂时关闭,或者它可能已永久移动到新的网址。

经过调查,Selenium 网络驱动程序使用的 Chrome 配置文件似乎与我的常规 Chrome 配置文件不同。因此,我想知道是否有人知道是否有办法告诉 Selenium 使用加载了扩展的常规 Chrome 配置文件或构建新配置文件并在运行时安装扩展。

到目前为止,我找到的大多数答案都集中在 Python 和 Java 上。如果我能提供更多信息,请告诉我。

【问题讨论】:

    标签: ruby google-chrome selenium


    【解决方案1】:

    在 Windows 上使用默认配置文件启动 Chrome:

    require 'selenium-webdriver'
    
    switches = ['user-data-dir='+ENV['LOCALAPPDATA']+'\\Google\\Chrome\\User Data']
    driver = Selenium::WebDriver.for :chrome, :switches => switches
    
    driver.navigate.to "https://www.google.co.uk"
    

    或者为创建的配置文件添加扩展:

    require 'selenium-webdriver'
    
    driver = Selenium::WebDriver.for :chrome, 
      :desired_capabilities => Selenium::WebDriver::Remote::Capabilities.chrome({
        'chromeOptions' => {
          'extensions' => [
            Base64.strict_encode64(File.open('C:\\App\\extension.crx', 'rb').read)
          ]
        }
      })
    
    driver.navigate.to "https://www.google.co.uk"
    

    【讨论】:

    • 我在 Firefox 上尝试了同样的方法,但它不起作用。除了用 'firefox' 和扩展名替换 'chrome' 之外,我还应该做哪些更改?
    猜你喜欢
    • 1970-01-01
    • 2016-03-13
    • 1970-01-01
    • 2018-04-29
    • 1970-01-01
    • 1970-01-01
    • 2019-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多