【问题标题】:Java Selenium 3.5.3 -Invalid moz:firefoxOptions field membersJava Selenium 3.5.3 - 无效的 moz:firefoxOptions 字段成员
【发布时间】:2017-09-18 07:25:26
【问题描述】:

Selenium 升级后出现这些错误。

系统

  • 版本:geckodriver-v0.18.0
  • 平台:Linux/ubuntu 1704
  • 火狐:火狐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();

【问题讨论】:

    标签: java firefox selenium-webdriver geckodriver


    【解决方案1】:

    要在 Headless Mode 中启动 Mozilla Firefox,您需要使用 FirefoxOptions 类并传递 @987654325 @ 参数和 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)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-17
      • 2022-11-01
      • 1970-01-01
      • 2014-03-24
      • 1970-01-01
      • 1970-01-01
      • 2017-08-08
      相关资源
      最近更新 更多