Создание профиля Firefox и отключение марионетки - PullRequest
0 голосов
/ 04 мая 2018

Я родом из Ruby, я знаю, как это сделать в Ruby Selenium Binding, но я не знаю, как это сделать, Java Selenium Binding,

У меня есть этот код для создания профиля Firefox

 FirefoxProfile firefoxProfile = new FirefoxProfile(pathToProfile);
 WebDriver driver=new FirefoxDriver(firefoxProfile);

Он работает в селене 2.53, но выдает ошибку в совсем недавней привязке к селену 3.11.0. Может кто-нибудь сказать мне, что является альтернативой?

А также я хотел отключить марионетку для подключения к драйверу Legacy Firefox, я могу сделать это с помощью следующего кода

DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette", false);
WebDriver driver=new FirefoxDriver(capabilities);

Но если я использую приведенную выше строку, то это означает, что FirefoxDriver устарела. Кто-нибудь может подсказать мне, как создать профиль, а также как отключить марионетку?

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

Чтобы использовать существующий Профиль Firefox для Выполнения теста Сначала необходимо создать Профиль Firefox вручную, следуя инструкциям на Creating a new Firefox profile on Windows. Теперь вам нужно передать Профиль Firefox объекту класса FirefoxOptions . Кроме того, как вы будете использовать Legacy Firefox Browser Вы должны установить marionatte на false через DesiredCapabilities объект класса, который вам нужен merge() в FirefoxOptions объект класса следующим образом:

System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe");
ProfilesIni profile = new ProfilesIni();
FirefoxProfile testprofile = profile.getProfile("debanjan");
FirefoxOptions options = new FirefoxOptions();
options.setProfile(testprofile);
DesiredCapabilities dc = new DesiredCapabilities();
dc.setCapability("marionatte", false);
options.merge(dc);
WebDriver driver = new FirefoxDriver(options);
driver.get("https://www.google.com");

Обновление

Я не уверен относительно вашего варианта использования и почему вы хотите использовать Legacy Firefox Driver . Но согласно обсуждению GitHub Unable to Start Firefox Using the Legacy Driver on a 3.5.3 Grid @jimevans ясно упоминает:

Устаревший драйвер Firefox не будет работать с Firefox 53 или около того. Вы можете запустить браузер, но языковые привязки не смогут полностью взаимодействовать с драйвером (поскольку Firefox откажется загружать расширение браузера, которое является устаревшим драйвером Firefox).

@ barancev также упоминает:

Привязка не должна передавать возможности OSS в W3C-совместимых частях полезной нагрузки, в блоке «возможностей». Они разрешены только в блоке «requiredCapabilities». Возможно, Mozilla нарушила совместимость с Selenium в Firefox 48 в канале релиза, но восстановила его в версии 52 в канале esr. Это было неожиданно, но это правда.

Все зависит от вас, чтобы принять осознанное решение.

0 голосов
/ 04 мая 2018

Да FirefoxDriver(desiredCapabilities) устарело.

Альтернативный путь будет с опциями :

FirefoxOptions foptions =  new FirefoxOptions(capabilities);
WebDriver driver=new FirefoxDriver(foptions);  

Обновление : [ В порядке ]

FirefoxOptions foptions =  new FirefoxOptions();
FirefoxProfile firefoxProfile = new FirefoxProfile(pathToProfile);
foptions.setProfile(firefoxProfile);
foptions.setCapability("marionette", false);
foptions.setBinary("C:\\Program Files\\Mozilla Firefox 52\\firefox.exe"); 
WebDriver driver = new FirefoxDriver(foptions);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...