Значит, драйвер марионетки должен поддерживать функцию, недоступную в geckodriver?
с я изучаю Selenium и столкнулся с проблемой.
Мне известно, что Selenium по умолчанию поддерживает старую версию Firefox без драйвера. А для последних версий Firefox мы должны скачать драйвер и определить его, используяSystem.setProperty
.
Согласно этомуссылка на сайтдля Firefox 45 и 46 код запуска драйвера может выглядеть следующим образом:
WebDriver driver = new FirefoxDriver();
Мой Firefox - версия 45.5.1., Но приведенный выше код все равно не будет работать. Итак, согласно этомуссылка на сайт, Я добавил:
System.setProperty("webdriver.firefox.marionette","C:\\geckodriver.exe");
И это сработало.
Тогда я понял, что я не установилgeckodriver.exe
на моем компьютере. Чтобы увидеть, как это происходит, я изменил код ниже:
System.setProperty("webdriver.firefox.marionette","");
Это все еще работает.
Итак, вот моя первая проблема: что случилось? Я уверен что нетgeckodriver.exe
существует в моей среде. Если ни одно местоположение не было указано, то почему я должен установить свойство?
Кроме того, я видел такой код:
System.setProperty("webdriver.gecko.driver", "/tools/marionette/wires.exe");
Мой второй вопрос: в чем разница междуwebdriver.gecko.driver
а такжеwebdriver.firefox.marionette
или жеwires.exe
а такжеgeckodriver.exe
?