Я получаю: NoSuchMethodError: org.openqa.selenium.firefox.FirefoxOptions.merge
, когда я пытаюсь запустить Selenium WebDriver
:
Мой код в main
вызывает один метод:
WebDriver driver = new WebDriverProfile().getTMPFirefoxProfile(null); // Parameter is optional
Я отправляю свой код подробно в надежде, что, возможно, кто-то сможет предложить предложение, чтобы направить меня в правильном направлении.
След стека:
Exception in thread "main" java.lang.NoSuchMethodError: org.openqa.selenium.firefox.FirefoxOptions.merge(Lorg/openqa/selenium/Capabilities;)Lorg/openqa/selenium/firefox/FirefoxOptions;
at webdriverX.WebDriverProfile.getTMPFirefoxProfile(WebDriverProfile.java:286)
at n.NMain.main(NMain.java:22)
Призыв к getTMPFirefoxProfile(ProxyPOJO proxyPOJO)
вызывает код:
public WebDriver getTMPFirefoxProfile(ProxyPOJO proxyPOJO) throws InterruptedException, MalformedObjectNameException, InstanceNotFoundException, ReflectionException {
System.setProperty("webdriver.gecko.driver", GlobalVar.geckdriverExecutableFilePath); // Verified path is correct via syso
DesiredCapabilities capabilities = new DesiredCapabilities();
if (proxyPOJO != null) {
Proxy proxy = new Proxy();
proxy.setHttpProxy(proxyPOJO.getProxyIP() + ":" + proxyPOJO.getProxyPort());
proxy.setFtpProxy(proxyPOJO.getProxyIP() + ":" + proxyPOJO.getProxyPort());
proxy.setSslProxy(proxyPOJO.getProxyIP() + ":" + proxyPOJO.getProxyPort());
capabilities.setCapability(CapabilityType.PROXY, proxy);
}
DesiredCapabilities dc = DesiredCapabilities.firefox();
FirefoxOptions opt = new FirefoxOptions();
opt.merge(dc);
opt.addPreference("dom.popup_maximum", 200);
opt.addPreference("dom.webnotifications.enabled", false);
opt.merge(capabilities);
WebDriver driver = WebDriverX.getNewFireFoxWebDriver(opt);
return driver;
}
Звонок на: getNewFireFoxWebDriver(FirefoxOptions firefoxOptions)
вызывает этот код:
if (firefoxOptions != null) {
driver = new FirefoxDriver(firefoxOptions);
} else {
driver = new FirefoxDriver();
}
return driver;
Я задал аналогичный вопрос однако Сейчас я попробовал почти 10 различных предложений - ни одно из них не решило мою проблему.
Ниже я опишу шаги, которые я предпринял, чтобы попытаться решить проблему:
1) Щелкните правой кнопкой мыши проект -> Maven clean -> Maven build -> Maven test (я пробовал каждый по отдельности, а затем все по порядку)
2) Clicked Project -> clean
3) Подтверждено Firefox обновлено до последней версии (версия 72)
4) Удалена библиотека guava
(только sugg конфликт ested) из проекта POM
5) Завершение работы и перезапуск Eclipse
6) Удаление всех конфигураций запуска и запуск проекта с нуля
7) Повторно загрузил GeckoDriver v0.26.0, чтобы убедиться, что у меня установлена самая маленькая версия
8) Я удостоверился, что POM файл содержит Selenium
версию зависимости 3.141.591
, которая содержит merge
метод
У меня нет параметров .. Что мне делать дальше?
Ниже приведено содержимое проект POM
файл:
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-firefox-driver</artifactId>
<version>3.141.59</version>
</dependency>
<dependency>
<groupId>edu.stanford.nlp</groupId>
<artifactId>stanford-corenlp</artifactId>
<version>3.9.2</version>
</dependency>
<dependency>
<groupId>edu.stanford.nlp</groupId>
<artifactId>stanford-corenlp</artifactId>
<version>3.9.2</version>
<classifier>models</classifier>
</dependency>
<dependency>
<groupId>uk.ac.abdn</groupId>
<artifactId>SimpleNLG</artifactId>
<version>4.4.8</version>
</dependency>
</dependencies>
У меня есть два других проекта, связанных в пути сборки этого проекта. Из одного проекта я могу звонить getTMPFirefoxProfile(ProxyPOJO proxyPOJO)
без проблем. С другой я получаю ту же ошибку, что и с текущим проектом. Что это значит? Я проанализировал другой проект и не вижу противоречивых зависимостей.
Я провел весь день, пытаясь устранить проблему, но чувствую себя полностью потерянным.
Есть идеи?
Спасибо!