Java Selenium 3.5.3 - недопустимые члены поля moz: firefoxOptions

После обновления Selenium появляется эта ошибка.

Система

  • Версия: geckodriver-v0.18.0
  • Платформа: Linux / ubuntu 1704
  • Firefox: Firefox 55.0.3.
  • Селен: 3.5.3

Трассировки стека

> Sep 18 06:51:54 costcoscraper-instance startup-script: INFO
> startup-script-url: Exception in thread "main
> org.openqa.selenium.InvalidArgumentException: Invalid
> moz:firefoxOptions field members Sep 18 06:51:54
> costcoscraper-instance startup-script: INFO startup-script-url: Build
> info: version: 'unknown', revision: 'unknown', time: 'unknown' Sep 18
> 06:51:54 costcoscraper-instance startup-script: INFO
> startup-script-url: System info: host: 'costcoscraper-instance', ip:
> '10.0.98.2', os.name: 'Linux', os.arch: 'amd64', os.version:
> '4.10.0-32-generic', java.version: '1.8.0_131' Sep 18 06:51:54
> costcoscraper-instance startup-script: INFO startup-script-url: Driver
> info: driver.version: Fi"refoxDriver Sep 18 06:51:54
> costcoscraper-instance startup-script: INFO startup-script-url: remote
> stacktrace: stack backtrace: Sep 18 06:51:54 costcoscraper-instance
> startup-script: INFO startup-script-url:    0:           0x5787ed -
> backtrace::backtrace::trace::h59229d13f6a8837d Sep 18 06:51:54
> costcoscraper-instance startup-script: INFO startup-script-url:    1: 
> 0x578942 - backtrace::capture::Backtrace::new::h23089c033eded8f0 Sep
> 18 06:51:54 costcoscraper-instance startup-script: INFO
> startup-script-url:    2:           0x4463cc -
> webdriver::error::WebDriverError::new::hd11f864b1fdf4510 Sep 18
> 06:51:54 costcoscraper-instance startup-script: INFO
> startup-script-url:    3:           0x440ff3 - <core::iter::Map<I, F>
> as core::iter::iterator::Iterator>::next::h4f3cf544297176b2 Sep 18
> 06:51:54 costcoscraper-instance startup-script: INFO
> startup-script-url:    4:           0x44baa3 -
> geckodriver::marionette::MarionetteHandler::create_connection::h6f7058fccafe4367
> Sep 18 06:51:54 costcoscraper-instance startup-script: INFO
> startup-script-url:    5:           0x425c32 -
> <webdriver::server::Dispatcher<T, U>>::run::h8f5348b8f5f7c053 Sep 18
> 06:51:54 costcoscraper-instance startup-script: INFO
> startup-script-url:    6:           0x40b22c -
> std::panicking::try::do_call::hb67c6fb6bcd96195 Sep 18 06:51:54
> costcoscraper-instance startup-script: INFO startup-script-url:    7: 
> 0x5dc20a - panic_unwind::__rust_maybe_catch_panic Sep 18 06:51:54
> costcoscraper-instance startup-script: INFO startup-script-url:       
> at /checkout/src/libpanic_unwind/lib.rs:98 Sep 18 06:51:54
> costcoscraper-instance startup-script: INFO startup-script-url:    8: 
> 0x41b943 - <F as alloc::boxed::FnBox<A>>::call_box::h4100941edc372034
> Sep 18 06:51:54 costcoscraper-instance startup-script: INFO
> startup-script-url:    9:           0x5d48a4 -
> alloc::boxed::{{impl}}::call_once<(),()> Sep 18 06:51:54
> costcoscraper-instance startup-script: INFO startup-script-url:       
> at /checkout/src/liballoc/boxed.rs:650 Sep 18 06:51:54
> costcoscraper-instance startup-script: INFO startup-script-url:       
> - std::sys_common::thread::start_thread Sep 18 06:51:54 costcoscraper-instance startup-script: INFO startup-script-url:       
> at /checkout/src/libstd/sys_common/thread.rs:21 Sep 18 06:51:54
> costcoscraper-instance startup-script: INFO startup-script-url:       
> - std::sys::imp::thread::{{impl}}::new::thread_start Sep 18 06:51:54 costcoscraper-instance startup-script: INFO startup-script-url:       
> at /checkout/src/libstd/sys/unix/thread.rs:84 Sep 18 06:51:54
> costcoscraper-instance startup-script: INFO startup-script-url: #011at
> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> Sep 18 06:51:54 costcoscraper-instance startup-script: INFO
> startup-script-url: #011at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
> Sep 18 06:51:54 costcoscraper-instance startup-script: INFO
> startup-script-url: #011at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> Sep 18 06:51:54 costcoscraper-instance startup-script: INFO
> startup-script-url: #011at
> java.lang.reflect.Constructor.newInstance(Constructor.java:423) Sep 18
> 06:51:54 costcoscraper-instance startup-script: INFO
> startup-script-url: #011at
> org.openqa.selenium.remote.W3CHandshakeResponse.lambda$new$0(W3CHandshakeResponse.java:57)
> Sep 18 06:51:54 costcoscraper-instance startup-script: INFO
> startup-script-url: #011at
> org.openqa.selenium.remote.W3CHandshakeResponse.lambda$getResponseFunction$2(W3CHandshakeResponse.java:104)
> Sep 18 06:51:54 costcoscraper-instance startup-script: INFO
> startup-script-url: #011at
> org.openqa.selenium.remote.ProtocolHandshake.lambda$createSession$24(ProtocolHandshake.java:359)
> Sep 18 06:51:54 costcoscraper-instance startup-script: INFO
> startup-script-url: #011at
> java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
> Sep 18 06:51:54 costcoscraper-instance startup-script: INFO
> startup-script-url: #011at
> java.util.Spliterators$ArraySpliterator.tryAdvance(Spliterators.java:958)
> Sep 18 06:51:54 costcoscraper-instance startup-script: INFO
> startup-script-url: #011at
> java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
> Sep 18 06:51:54 costcoscraper-instance startup-script: INFO
> startup-script-url: #011at
> java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:498)
> Sep 18 06:51:54 costcoscraper-instance startup-script: INFO
> startup-script-url: #011at
> java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485)
> Sep 18 06:51:54 costcoscraper-instance startup-script: INFO
> startup-script-url: #011at
> java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
> Sep 18 06:51:54 costcoscraper-instance startup-script: INFO
> startup-script-url: #011at
> java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152)
> Sep 18 06:51:54 costcoscraper-instance startup-script: INFO
> startup-script-url: #011at
> java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
> Sep 18 06:51:54 costcoscraper-instance startup-script: INFO
> startup-script-url: #011at
> java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:464)
> Sep 18 06:51:54 costcoscraper-instance startup-script: INFO
> startup-script-url: #011at
> org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:362)
> Sep 18 06:51:54 costcoscraper-instance startup-script: INFO
> startup-script-url: #011at
> org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:136)
> Sep 18 06:51:54 costcoscraper-instance startup-script: INFO
> startup-script-url: #011at
> org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:142)
> Sep 18 06:51:54 costcoscraper-instance startup-script: INFO
> startup-script-url: #011at
> org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:82)
> Sep 18 06:51:54 costcoscraper-instance startup-script: INFO
> startup-script-url: #011at
> org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:646)
> Sep 18 06:51:54 costcoscraper-instance startup-script: INFO
> startup-script-url: #011at
> org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:255)
> Sep 18 06:51:54 costcoscraper-instance startup-script: INFO
> startup-script-url: #011at
> org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:237)
> Sep 18 06:51:54 costcoscraper-instance startup-script: INFO
> startup-script-url: #011at
> org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:138)
> Sep 18 06:51:54 costcoscraper-instance startup-script: INFO
> startup-script-url: #011at
> org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:191)
> Sep 18 06:51:54 costcoscraper-instance startup-script: INFO
> startup-script-url: #011at
> org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:103)

Пожалуйста, помогите решить эту проблему. получение этой проблемы после обновления версии selenium и geckodriver и firefox.

Этот обновленный код для selenium 3.5.3 позволяет запускать firefox в автономном режиме.

FirefoxBinary firefoxBinary = new FirefoxBinary();
firefoxBinary.addCommandLineOptions("--headless");
System.setProperty("webdriver.gecko.driver", "/home/karanpal_insonix/geckodriver");
FirefoxOptions firefoxOptions = new FirefoxOptions();
firefoxOptions.setBinary(firefoxBinary);
Firefox driver = new FirefoxDriver();

person Surinder Singh    schedule 18.09.2017    source источник


Ответы (1)


Чтобы инициировать Mozilla Firefox в Headless Mode, вам необходимо использовать класс FirefoxOptions и передать аргумент --headless и абсолютный путь к двоичный файл firefox, т. е. firefox.exe. Стоит отметить, что Mozilla Firefox Headless Mode все еще находится в Development Stage, а функциональность доступна только в Mozilla Nightly Build. Вот пример блока кода:

package firefox;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxOptions;

public class headless {

    public static void main(String[] args) {


        System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe");
        FirefoxOptions options = new FirefoxOptions();
        options.setBinary("C:\\Program Files\\Nightly\\firefox.exe");
        options.addArguments("--headless");
        WebDriver driver = new FirefoxDriver(options);
        System.out.println("Firefox Headless Browser Invoked");
        driver.get("http://www.google.com");
        System.out.println("Page Title is : "+driver.getTitle());
        driver.quit();
    }
}

Здесь вы можете получить подробный обзор Mozilla Firefox in Headless Mode through Selenium 3.5.2 (Java)

person DebanjanB    schedule 21.09.2017