Как получить доступ к расширению Firefox, которое я добавил в Selenium Webdriver? - PullRequest
12 голосов
/ 21 июля 2011

Я знаю, что вы можете загрузить либо существующий профиль Firefox, либо создать его, используя Ruby Bindings в геме selenium-webdriver, как описано здесь:

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

1 Ответ

1 голос
/ 02 июня 2013

Это зависит от расширения. Обычно поведение расширения может в некоторой степени контролироваться путем установки соответствующих свойств (те, которые вы можете найти в about: config) при создании профиля FF. Например, чтобы окно Firebug открывалось по умолчанию после запуска FF, я бы включил в свой код следующую строку:

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

Используемые мной расширения обычно имеют некоторую функцию автоэкспорта, которая автоматически отправляет данные на сервер или сохраняет их на диске. Боюсь, что не существует способа управления расширением с помощью WebDriver, поэтому не все расширения можно будет использовать в автоматических тестах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...