используя собственный браузер с watir-webdriver в Ruby

Как можно заставить Watir использовать новый или пользовательский веб-браузер, отличный от обычного :opera, :ie, :chrome или :firefox?

Например

$browser = Watir::Browser.new :firedog

Что влечет за собой модификация базового класса драйвера Selenium, если, скажем, :firedog — это просто пользовательская сборка* Firefox или Firefox с пользовательскими параметрами? (* Таким образом, я могу беспокоиться о встраивании надстройки веб-драйвера в мой пользовательский ff отдельно.)

Надеясь избежать создания нового драгоценного камня, просто расширьте необходимый(е), если это возможно, но не знаете, как это сделать в реализации Ruby.


person Marcos    schedule 23.01.2012    source источник


Ответы (2)


Это, вероятно, то, что вам нужно спросить у людей из списка Selenium Webriver. Я добавил тег вебдрайвера, но не уверен, сколько их здесь висит.

Как только драйвер создан (аналогично chromedriver или operadriver, как я ожидаю) и все работает с webdriver, он должен работать для всего, что построено поверх него, например watir-webdriver.

person Chuck van der Linden    schedule 01.02.2012

Если вам нужны только настраиваемые профили, добавление расширений, вы можете использовать уже реализованный API. Если у вас есть собственная сборка Firefox, вы все равно можете добавить к ней надстройку WebDriver и просто переопределить двоичный путь к Firefox.

Все это описано на странице http://code.google.com/p/selenium/wiki/RubyBindings

person p0deje    schedule 05.02.2012
comment
Я все это видел; уже использовал выделенные профили со специально настроенными настройками и расширениями (и да, возможность переключаться между несколькими версиями ff на одном сервере). Знаете, как я могу переопределить параметры командной строки, которые Selenium использует для запуска Firefox? - person Marcos; 06.02.2012
comment
У меня есть по крайней мере одна идея, как обмануть Selenium::WebDriver::Firefox.path, чтобы он использовал оболочку вокруг моего настоящего браузера: применить хитрость Bash, чтобы убрать ненужные параметры и добавить свои пользовательские, прежде чем выполнять exec. Но я уже могу придумать некоторые причины, по которым это может не сработать. - person Marcos; 06.02.2012
comment
В этом случае вы столкнетесь со старой проблемой, когда browser.close убивает не процесс Firefox, а только bash-скрипт, который его запустил. - person p0deje; 06.02.2012
comment
bash exec полностью заменяет родителя дочерним, а скрипт в памяти как таковой перестает существовать, в отличие от fork. Во всяком случае, browser.close - это наименьшая из моих забот, у меня были проверки очистки, довольно хорошо покрытые вне пробегов watir. Я еще не проверил свой метод оболочки выше - сообщу о результатах. - person Marcos; 06.02.2012