Java 使用Firefox的Selenium自动化在本地工作,但在服务器上失败
使用Firefox的Selenium自动化在本地工作,但在服务器上失败 Selenium版本:3.141.59 Geckodriver版本:0.24.0 Firefox版本:68.0.1 JDK版本:1.8.0_171 本地JRE版本:1.8.0Ó 服务器JRE版本:1.8.0191 例外情况:Java 使用Firefox的Selenium自动化在本地工作,但在服务器上失败,java,selenium,firefox,geckodriver,Java,Selenium,Firefox,Geckodriver,使用Firefox的Selenium自动化在本地工作,但在服务器上失败 Selenium版本:3.141.59 Geckodriver版本:0.24.0 Firefox版本:68.0.1 JDK版本:1.8.0_171 本地JRE版本:1.8.0Ó 服务器JRE版本:1.8.0191 例外情况: org.openqa.selenium.WebDriverException: connection refused Build info: version: 'unknown', revision:
org.openqa.selenium.WebDriverException: connection refused
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'XXXXXXXXXXXXXXX', ip: 'XXX.XXX.XXX.XX', os.name: 'Windows Server 2016', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_191'
Driver info: driver.version: FirefoxDriver
remote stacktrace:
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.openqa.selenium.remote.W3CHandshakeResponse.lambda$errorHandler$0(W3CHandshakeResponse.java:62)
at org.openqa.selenium.remote.HandshakeResponse.lambda$getResponseFunction$0(HandshakeResponse.java:30)
at org.openqa.selenium.remote.ProtocolHandshake.lambda$createSession$0(ProtocolHandshake.java:126)
at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
at java.util.Spliterators$ArraySpliterator.tryAdvance(Unknown Source)
at java.util.stream.ReferencePipeline.forEachWithCancel(Unknown Source)
at java.util.stream.AbstractPipeline.copyIntoWithCancel(Unknown Source)
at java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
at java.util.stream.FindOps$FindOp.evaluateSequential(Unknown Source)
at java.util.stream.AbstractPipeline.evaluate(Unknown Source)
at java.util.stream.ReferencePipeline.findFirst(Unknown Source)
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:128)
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:74)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:136)
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:213)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:147)
早些时候,我尝试了chromedriver,它在本地和服务器上运行良好。但是我想用firefox以无头模式下载文件
浏览器跟踪日志--
1563908741085 mozrunner::runner INFO运行命令:“firefox/app/firefox.exe”“-marionete”“-headless”“-front”“-no-remote”“-profile”“C:\\Users\\\AppData\\Local\\Temp\\rust\u mozprofile.cJQJoMJMqDtb”
1563908741101 geckodriver::木偶调试等待60秒连接到127.0.0.1上的浏览器:62884
***您正在无头模式下运行。
1563908741992 addons.webextension。screenshots@mozilla.org警告加载扩展'screenshots@mozilla.org“:正在读取清单:无效的扩展权限:mozillaAddons
1563908741993 addons.webextension。screenshots@mozilla.org警告加载扩展'screenshots@mozilla.org“:读取清单:无效的扩展权限:遥测
1563908741993 addons.webextension。screenshots@mozilla.org警告加载扩展'screenshots@mozilla.org“:正在读取清单:扩展权限无效:resource://pdf.js/
1563908741993 addons.webextension。screenshots@mozilla.org警告加载扩展'screenshots@mozilla.org“:读取清单:无效的扩展权限:关于:读取器*
1563908742164更改后,木偶跟踪收到观察员通知配置文件
1563908742224木偶跟踪收到观察员通知顶层窗口就绪
1563908742271木偶跟踪收到观察者通知命令行启动
1563908742272木偶跟踪收到观察员通知nsPref:已更改
1563908742272木偶调试初始化中止(running=false,enabled=true,finalUIStartup=false)
1563908742456木偶跟踪收到观察员通知顶层窗口就绪
1563908744415木偶网跟踪收到观察员通知木偶网启动请求
检测到1563908744416木偶跟踪GFX健全窗口,等待其关闭。。。
1563908802148 mozrunner::runner调试终止进程2704
1563908802148 webdriver::server DEBUG您需要在-FirefoxOptions=new FirefoxOptions()之后启动RemoteDriver
您需要在-FirefoxOptions=newfirefoxoptions()之后启动RemoteDriver
我的设置不是客户端-服务器类型。它是一个独立的应用程序,我想从服务器上运行。我的安装程序不是客户端-服务器类型。这是一个我想从服务器上运行的独立应用程序。请确保设置firefox二进制文件和geckodriver的路径。。。(如果安装在默认位置,则可能不需要firefox浏览器路径)System.setProperty(“webdriver.firefox.bin”,firefox\u路径);和System.setProperty(“webdriver.gecko.driver”,driver\u path);服务器上没有安装Firefox,我使用的是便携式Firefox(本地和服务器上都有)。在这里设置firefoxoptions.setBinary(browserBinary)
,尝试添加firefox二进制文件,但不起作用。与您的问题无关,但您在此处输入了一个错误:options.setCapability(“Marionate”,false);(我想你可以把它去掉,反正这是传统的东西)你有没有设定通往壁虎河的道路?。。。我怀疑这是一个路径问题,因为它在一台机器上工作,而不是在另一台机器上。geckodriver路径正确,请使用log.info(“驱动程序:“+driverPath+”::Exists:“+new File(driverPath).Exists()”)进行检查代码>添加了浏览器跟踪日志。我很担心为什么它会说buildinfo:version:'unknown',revision:'unknown',time:'unknown'
我想如果已经有一个浏览器会话使用相同的配置文件打开,您会看到这个错误。检查Firefox是否已经在运行。还要检查两台机器是否相同,最远为32位/64位。有两条不同的壁虎河。。。32位和64位。请确保设置firefox二进制文件和geckodriver的路径。。。(如果安装在默认位置,则可能不需要firefox浏览器路径)System.setProperty(“webdriver.firefox.bin”,firefox\u路径);和System.setProperty(“webdriver.gecko.driver”,driver\u path);服务器上没有安装Firefox,我使用的是便携式Firefox(本地和服务器上都有)。在这里设置firefoxoptions.setBinary(browserBinary)
,尝试添加firefox二进制文件,但不起作用。与您的问题无关,但您在此处输入了一个错误:options.setCapability(“Marionate”,false);(我想你可以把它去掉,反正这是传统的东西)你有没有设定通往壁虎河的道路?。。。我怀疑这是一个路径问题,因为它在一台机器上工作,而不是在另一台机器上。geckodriver路径正确,请使用log.info(“驱动程序:“+driverPath+”::Exists:“+new File(driverPath).Exists()”)进行检查代码>添加了浏览器跟踪日志。我很担心为什么它会说buildinfo:version:'unknown',revision:'unknown',time:'unknown'
我想如果已经有一个浏览器会话使用相同的配置文件打开,您会看到这个错误。检查Firefox是否已经在运行。还要检查两台机器是否相同,最远为32位/64位。有两条不同的壁虎河。。。32位和64位。
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("capability.policy.default.Window.QueryInterface", "allAccess");
profile.setPreference("capability.policy.default.Window.frameElement.get","allAccess");
profile.setPreference("browser.download.folderList", 2);
profile.setPreference("browser.download.dir", System.getProperty("user.dir")+"\\downloads");
profile.setPreference("browser.download.useDownloadDir", true);
profile.setAcceptUntrustedCertificates(true);
profile.setAssumeUntrustedCertificateIssuer(true);
DesiredCapabilities capabilities = new DesiredCapabilities();
FirefoxOptions options = new FirefoxOptions();
options.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
options.setCapability("marionatte", false);
options.setProfile(profile);
options.setHeadless(true);
options.setBinary(browserBinary);
options.addPreference("browser.helperApps.neverAsk.saveToDisk", "text/csv");
options.addPreference("pdfjs.disabled", true);
log.info("Starting firefox");
FirefoxDriver driver = new FirefoxDriver(options);
driver.getCapabilities().merge(capabilities);
1563908741085 mozrunner::runner INFO Running command: "firefox/app/firefox.exe" "-marionette" "-headless" "-foreground" "-no-remote" "-profile" "C:\\Users\\<userid>\\AppData\\Local\\Temp\\rust_mozprofile.cJQJoMJMqDtb"
1563908741101 geckodriver::marionette DEBUG Waiting 60s to connect to browser on 127.0.0.1:62884
*** You are running in headless mode.
1563908741992 addons.webextension.screenshots@mozilla.org WARN Loading extension 'screenshots@mozilla.org': Reading manifest: Invalid extension permission: mozillaAddons
1563908741993 addons.webextension.screenshots@mozilla.org WARN Loading extension 'screenshots@mozilla.org': Reading manifest: Invalid extension permission: telemetry
1563908741993 addons.webextension.screenshots@mozilla.org WARN Loading extension 'screenshots@mozilla.org': Reading manifest: Invalid extension permission: resource://pdf.js/
1563908741993 addons.webextension.screenshots@mozilla.org WARN Loading extension 'screenshots@mozilla.org': Reading manifest: Invalid extension permission: about:reader*
1563908742164 Marionette TRACE Received observer notification profile-after-change
1563908742224 Marionette TRACE Received observer notification toplevel-window-ready
1563908742271 Marionette TRACE Received observer notification command-line-startup
1563908742272 Marionette TRACE Received observer notification nsPref:changed
1563908742272 Marionette DEBUG Init aborted (running=false, enabled=true, finalUIStartup=false)
1563908742456 Marionette TRACE Received observer notification toplevel-window-ready
1563908744415 Marionette TRACE Received observer notification marionette-startup-requested
1563908744416 Marionette TRACE GFX sanity window detected, waiting until it has been closed...
1563908802148 mozrunner::runner DEBUG Killing process 2704
1563908802148 webdriver::server DEBUG <- 500 Internal Server Error {"value":{"error":"unknown error","message":"connection refused","stacktrace":""}}
driver = new RemoteWebDriver(your URL, capabilities);