如何访问我在 Selenium Webdriver 中添加的 Firefox 扩展?

2023-11-21

我知道您可以加载现有的 Firefox 配置文件,或者使用 selenium-webdriver gem 中的 Ruby Bindings 创建一个配置文件,如下所述:

http://code.google.com/p/selenium/wiki/RubyBindings

然后使用add_extension将任意数量的 Firefox 扩展添加到实例中,但是然后呢?测试期间不会出现我正在使用的扩展程序的窗口。我如何使用扩展程序?

有没有办法让驱动程序打开 Firefox 时默认打开扩展程序?

这是我正在使用的代码:

#!/usr/bin/env ruby
require "rubygems"
require "selenium-webdriver"

default_profile = Selenium::WebDriver::Firefox::Profile.from_name "default"
default_profile.add_extension("/Users/******/Library/Application Support/Firef\
ox/Profiles/wvon3h99.default/extensions/{9c51bd27-6ed8-4000-a2bf-36cb95c0c947}.\
xpi")

driver = Selenium::WebDriver.for(:firefox, :profile => default_profile)
driver.navigate.to "http://google.com"

element = driver.find_element(:name, 'q')
element.send_keys "Hello WebDriver!"
element.submit

puts driver.title

driver.quit

这取决于扩展。通常,在创建 FF 配置文件时,可以通过设置适当的属性(可以在 about:config 中找到的属性)在某种程度上控制扩展的行为。例如,要在 FF 启动后默认打开 Firebug 窗口,我将在代码中包含以下行:

default_profile["extensions.firebug.allPagesActivation"] = true

我使用的扩展通常具有某种自动导出功能,可以自动将数据发送到服务器或将其保存在磁盘上。恐怕无法使用 WebDriver 控制扩展,因此并非所有扩展都可用于自动化测试。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何访问我在 Selenium Webdriver 中添加的 Firefox 扩展? 的相关文章

  • 如何使用内容类型:多部分/相关

    我想向用户发送一个二进制文件 并在浏览器上显示一些 HTML 我正在使用 apache2 的 CGI BIN 脚本 我发现此示例位于第 4 页 http www ietf org rfc rfc2387 txt 该链接还显示有关多部分 相关
  • 直接或通过包含定义嵌套类

    假设我正在为我的家庭存储系统建模 我有很多不同类型的Container 而且我发现其中很多都有装饰品 因此我为这种常见情况设置了一些辅助代码 我的容器中有我的Mantlepiece and my Bookcase 我只在前者上存放装饰品 而
  • 为 .API 文件启用自动完成功能?

    有谁知道如何使用 N 站点上提供的 API 文件在 Notepad 中自动完成工作 在 API 文件夹中具有 XML 自动完成文件的语言中 自动完成功能工作得很好 但对于使用 API 文件的语言 ruby AutoIt 等 完全不起作用 根
  • 不将所需的文件包含到 vim 全方位补全中

    如果我尝试在具有 require xxx 语句的 Ruby 文件中自动完成 它会开始扫描所需的所有文件 以及所需文件所需的文件 它每次都会这样做 是否可以使 vim 自动完成功能不扫描所需文件或仅扫描特定路径中的文件 例如仅 app 以下之
  • 查找数组中 2 个缺失数字的最快方法

    这个问题的存在只是出于纯粹的好奇心 不是作业 找到在数组 1 n 中找到两个缺失数字的最快方法 因此 在相关帖子中 查找数字数组中缺失数字的最快方法 https stackoverflow com questions 2113795 qui
  • mongoid 中的嵌入文档与哈希数据类型

    我找不到任何讨论此问题的博客文章或文档 它们 嵌入式文档和哈希数据类型 非常相似 彼此相比有何好处或限制 考虑我的架构设计 class HistoryTracker include Mongoid Document include Mong
  • 如何在Python Selenium中获取WebElement的类名?

    我使用 Selenium WebDriver 来抓取从网页中获取的 用 JavaScript 编写的表格 我正在迭代表行列表 每行可能属于不同的类别 我想获取此类的名称 以便我可以为每一行选择适当的操作 table body table f
  • 如何仅获取元素 id - 使用 Selenium WebDriver 2

    编辑 我也尝试过这个 var webElements1 Driver FindElements By XPath id ctl00 ContentPlaceHolder1 Control1 lstCategory input ToList
  • 迭代比线性代码慢吗?哪一个更可取?

    最近几天我脑子里一直有一个问题 在用 ruby 编写代码时 线性代码是否比迭代更快 更好 让我举个例子 有一个用于相同功能的代码块以两种不同的方式编写 Way 1 dog cat tiger each do pet name puts I
  • Rails 2.3.14:如何序列化 ActionController::Request 对象?

    我需要编写一些根据 Rails 2 3 14 控制器收到的请求对象类型执行操作的方法 但是 我不想启动整个应用程序 甚至不想启动控制器 我只想拥有这样一个对象的编组副本 以便我可以在 Rails 环境之外使用 不幸的是 ActionCont
  • Ruby `split':UTF-8 中的无效字节序列(ArgumentError)

    我正在尝试填充电影对象 但是在解析时u item文件我收到此错误 split UTF 8 中的无效字节序列 ArgumentError File open Data u item r do infile while line infile
  • 忽略 GEM,因为它的扩展尚未构建

    在我的工作和家用计算机上 我最近将 Ruby 升级到 2 3 1 使用ruby install I use chruby作为我的 Ruby 切换器 我开始在我的终端中看到这个警告 Ignoring bcrypt 3 1 11 because
  • 在 RSpec 测试期间抑制控制台输出

    我正在测试在控制台上放置一些消息的类 包含 put p 警告等 我只是想知道在 RSpec 测试期间是否有能力抑制此输出 我压抑puts通过重定向在我的类中输出 stout到一个文本文件 这样 如果我出于任何原因需要查看输出 它就在那里 但
  • 如何在保存父对象时确保子对象有效?

    假设我有两堂课 class User attr accessible name has one address validates name presence gt true validates associated address end
  • 模块何时包含在在 Rails 中运行的 Ruby 类中?

    我正在尝试编写一个方法来告诉我包含特定模块的每个类 它看起来像这样 def Rating rateable objects rateable objects ObjectSpace each object Class do c next u
  • $ bundle exec rake db:reset 命令提升无法删除 db/development.sqlite3

    我试着跑 bundle exec rake db reset并在控制台上发现以下内容 Couldn t drop db development sqlite3
  • Ruby 中的 Splat 运算符(快速排序示例)

    你好 我正在研究一些 Ruby 代码 在 Ruby 中实现快速排序 1 def qsort lst 2 return if lst empty 3 x xs lst 4 less more xs partition y y lt x 5 q
  • 设计重定向到成功登录似乎在第一次登录尝试时卡住

    我正在使用 Ruby on Rails 开发一个小型应用程序 并使用 Devise 进行身份验证 我有两个登录系统设置 一个是user另一个是employee 当使用正确的电子邮件和密码登录时 设计会发送正确的重定向到返回路径 但它会卡在那
  • Rails/heroku 从 gem 迁移到 toolbelt

    我曾经在一个项目中使用过 heroku gem 既然工具带已经出来了 我想换一个 我从 Gemfile 中删除了 gem 并通过 gem uninstall heroku 卸载了它 我使用heroku网站上的pkg安装了heroku工具带
  • “memset”没有 DLL 那么如何 ctype 它

    如何使用memset在 jsc 类型中 没有对应的 DLL 我搜索 搜索了 js ctype 代码 但找不到要破解的示例 如果你只是想memset一个数组为零字节 然后我有 好消息 大家 js ctypes 会将新数组初始化为零 否则 最简

随机推荐