ruby - 使用 Watir-Webdriver/Selenium 在 Firefox 中指定自定义用户数据目录

标签 ruby firefox selenium selenium-webdriver watir-webdriver

我可以使用 Chrome 驱动程序执行以下操作:

b = Watir::Browser.new :chrome, :switches => ['--user-data-dir=C:/some_folder/'] # same philosophy for selenium, just a bit of a different syntax.

这将创建一个新的 user data directory将存储所有 cookie、书签、缓存等的位置。基本上,创建一个新的配置文件。如果这样的文件夹不存在,它将创建它。如果它确实存在,它将从中加载 cookies/所有相关文件。

有没有办法使用 Firefox 驱动程序做同样的事情?我一直在寻找创建 Firefox 配置文件的方法,我只找到了这篇文章:Creating a new Firefox Profile这并不能解决我的问题,因为我希望自动执行此操作,就像上面的 Chrome 驱动程序一样。此外,您似乎可以创建一个新的配置文件:

profile = Selenium::WebDriver::Firefox::Profile.new

但我还没有找到用我指定的名称保存该配置文件的方法。

最佳答案

这适用于 firefox 60+ 和新的 marionette/geckodriver .

经过大量调整后,这就是我使用自定义配置文件的方式:

$ xvfb-run firefox -CreateProfile test
options = Selenium::WebDriver::Firefox::Options.new # no profile specified here
options.add_argument "--profile"
options.add_argument "/home/jenkins/.mozilla/firefox/f0jecsmr.test"
@browser = Watir::Browser.new :firefox, options: options, driver_opts: {marionette_port: 2828}, **capabilities

接近于documentation建议用python做。不过,需要阅读源代码才能弄清楚这些 driver_opts(或者我没有找到相关文档)。

HTH 某人。

关于ruby - 使用 Watir-Webdriver/Selenium 在 Firefox 中指定自定义用户数据目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26642154/

相关文章:

ruby - 从开始救援错误返回一个变量

jquery - jQuery 选择器中允许使用哪些字符?

php - Selenium click() 有效但 submit() 无效

ruby - 为什么 Pry 对这些返回值的格式不同?

ruby - 为什么类是类的实例,而不是对象的实例?

json - 解析 mozilla firefox json 文件的快速而肮脏的方法

javascript - 如何更改 Firefox OS 设备上的墙纸?

PHPUnit - 浪费了 15 多个小时,但仍然无法正常工作

html - 如何使用 Python 搜索 HTML 元素? Python 网络机器人错误

ruby - 搜索方法中 “_id”字段对elasticsearch的影响?