2017-07-24 92 views
1

当我添加springboot插件到我的Selenium应用程序。硒采矿工作。Springboot with Selenium

这是我最小的示例代码:

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

public class Main { 
    public static void main(String[] args) 
    { 
     System.setProperty("webdriver.gecko.driver", "/home/rafal/geckodriver"); 
     WebDriver webDriver = new FirefoxDriver(); 
     webDriver.get("http://google.com"); 
    } 
} 

和gradle这个:

group 'testSeleniumasdf' 
version '1.0-SNAPSHOT' 

repositories { 
    mavenCentral() 
} 

apply plugin: 'java' 
sourceCompatibility = 1.8 

dependencies { 
    compile group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '3.4.0' 
    testCompile group: 'junit', name: 'junit', version: '4.11' 
} 

和它的作品...

但是,当我加入springboot我gradle这个,喜欢这里:

group 'testSeleniumasdf' 
version '1.0-SNAPSHOT' 

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath("org.springframework.boot:spring-boot-gradle-plugin:1.5.3.RELEASE") 
    } 
} 

apply plugin: 'java' 
apply plugin: 'eclipse' 
apply plugin: 'idea' 
apply plugin: 'org.springframework.boot' 

sourceCompatibility = 1.8 


repositories { 
    mavenCentral() 
} 

dependencies { 
    compile("org.springframework.boot:spring-boot-starter-data-jpa") 
    compile group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '3.4.0' 
    testCompile group: 'junit', name: 'junit', version: '4.11' 
} 

它不起作用。这是45秒超时。和日志:

org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output: 
amed-provider> 
1500922321841 addons.manager DEBUG Registering shutdown blocker for <unnamed-provider> 
1500922321841 addons.manager DEBUG Provider finished startup: <unnamed-provider> 
1500922321902 DeferredSave.extensions.json DEBUG Write succeeded 
1500922321902 addons.xpi-utils DEBUG XPI Database saved, setting schema version preference to 19 
1500922321902 DeferredSave.extensions.json DEBUG Starting timer 
1500922321919 addons.repository DEBUG No addons.json found. 
1500922321919 DeferredSave.addons.json DEBUG Save changes 
1500922321921 DeferredSave.addons.json DEBUG Starting timer 
[PIPELIGHT:LIN:unknown] attached to process. 
[PIPELIGHT:LIN:unknown] checking environment variable PIPELIGHT_SILVERLIGHT5_0_CONFIG. 
[PIPELIGHT:LIN:unknown] searching for config file pipelight-silverlight5.0. 
[PIPELIGHT:LIN:unknown] trying to load config file from '/home/rafal/.config/pipelight-silverlight5.0'. 
[PIPELIGHT:LIN:unknown] trying to load config file from '/etc/pipelight-silverlight5.0'. 
[PIPELIGHT:LIN:unknown] trying to load config file from '/usr/share/pipelight/configs/pipelight-silverlight5.0'. 
[PIPELIGHT:LIN:unknown] sandbox not found or not installed! 
[PIPELIGHT:LIN:silverlight5.0] using wine prefix directory /home/rafal/.wine-pipelight. 
[PIPELIGHT:LIN:silverlight5.0] checking plugin installation - this might take some time. 
[install-dependency] wine-silverlight5.0-installer is already installed in '/home/rafal/.wine-pipelight'. 
[install-dependency] wine-mpg2splt-installer is already installed in '/home/rafal/.wine-pipelight'. 
fixme:winediag:start_process Wine Staging 1.9.7 is a testing version containing experimental patches. 
fixme:winediag:start_process Please mention your exact version when filing bug reports on winehq.org. 
wine: Nie znaleziono biblioteki DLL. 
err:wineboot:ProcessRunKeys Error running cmd L"C:\\windows\\system32\\winemenubuilder.exe -a -r" (1157) 
[PIPELIGHT:WIN:silverlight5.0] embedded mode   is on. 
[PIPELIGHT:WIN:silverlight5.0] windowless mode  is off. 
[PIPELIGHT:WIN:silverlight5.0] linux windowless mode is off. 
[PIPELIGHT:WIN:silverlight5.0] force SetWindow  is off. 
[PIPELIGHT:WIN:silverlight5.0] window class hook  is on. 
[PIPELIGHT:WIN:silverlight5.0] strict draw ordering is off. 
[PIPELIGHT:WIN:silverlight5.0] replaced API function CreateWindowExA. 
[PIPELIGHT:WIN:silverlight5.0] replaced API function CreateWindowExW. 
[PIPELIGHT:WIN:silverlight5.0] replaced API function TrackPopupMenuEx. 
[PIPELIGHT:WIN:silverlight5.0] replaced API function TrackPopupMenu. 
fixme:ntdll:EtwRegisterTraceGuidsW (0x7b8d1f07, 0x7b96f118, {aa087e0e-0b35-4e28-8f3a-440c3f51eef1}, 1, 0x68f628, (null), (null), 0x7b96f118): stub 
fixme:ntdll:EtwRegisterTraceGuidsW register trace class {aa087e0e-0b35-4e28-8f3a-440c3f51eef1} 
[PIPELIGHT:WIN:silverlight5.0] init successful! 
[PIPELIGHT:WIN:silverlight5.0] OpenGL Vendor: Intel Open Source Technology Center 
[PIPELIGHT:WIN:silverlight5.0] OpenGL Renderer: Mesa DRI Intel(R) Haswell Mobile x86/MMX/SSE2 
[PIPELIGHT:WIN:silverlight5.0] Your GPU is in the whitelist, hardware acceleration should work. 
1500922322191 addons.manager DEBUG Starting provider: PreviousExperimentProvider 
1500922322191 addons.manager DEBUG Registering shutdown blocker for PreviousExperimentProvider 
1500922322192 addons.manager DEBUG Provider finished startup: PreviousExperimentProvider 
1500922322196 DeferredSave.extensions.json DEBUG Starting write 
1500922322196 DeferredSave.addons.json DEBUG Starting write 
1500922322209 DeferredSave.extensions.json DEBUG Write succeeded 
1500922322210 DeferredSave.addons.json DEBUG Write succeeded 

(/usr/lib/firefox/firefox:22291): GLib-GObject-CRITICAL **: g_object_ref: assertion 'object->ref_count > 0' failed 

(/usr/lib/firefox/firefox:22291): GLib-GObject-CRITICAL **: g_object_unref: assertion 'object->ref_count > 0' failed 

(/usr/lib/firefox/firefox:22291): GLib-GObject-CRITICAL **: g_object_ref: assertion 'object->ref_count > 0' failed 

(/usr/lib/firefox/firefox:22291): GLib-GObject-CRITICAL **: g_object_unref: assertion 'object->ref_count > 0' failed 

    at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:113) 
    at org.openqa.selenium.firefox.FirefoxDriver.startClient(FirefoxDriver.java:271) 
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:119) 
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:216) 
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:211) 
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:207) 
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:120) 
    at Main.main(Main.java:9) 
Exception in thread "main" org.openqa.selenium.WebDriverException: Failed to connect to binary FirefoxBinary(/usr/bin/firefox) on port 7055; process output follows: 
amed-provider> 
1500922321841 addons.manager DEBUG Registering shutdown blocker for <unnamed-provider> 
1500922321841 addons.manager DEBUG Provider finished startup: <unnamed-provider> 
1500922321902 DeferredSave.extensions.json DEBUG Write succeeded 
1500922321902 addons.xpi-utils DEBUG XPI Database saved, setting schema version preference to 19 
1500922321902 DeferredSave.extensions.json DEBUG Starting timer 
1500922321919 addons.repository DEBUG No addons.json found. 
1500922321919 DeferredSave.addons.json DEBUG Save changes 
1500922321921 DeferredSave.addons.json DEBUG Starting timer 
[PIPELIGHT:LIN:unknown] attached to process. 
[PIPELIGHT:LIN:unknown] checking environment variable PIPELIGHT_SILVERLIGHT5_0_CONFIG. 
[PIPELIGHT:LIN:unknown] searching for config file pipelight-silverlight5.0. 
[PIPELIGHT:LIN:unknown] trying to load config file from '/home/rafal/.config/pipelight-silverlight5.0'. 
[PIPELIGHT:LIN:unknown] trying to load config file from '/etc/pipelight-silverlight5.0'. 
[PIPELIGHT:LIN:unknown] trying to load config file from '/usr/share/pipelight/configs/pipelight-silverlight5.0'. 
[PIPELIGHT:LIN:unknown] sandbox not found or not installed! 
[PIPELIGHT:LIN:silverlight5.0] using wine prefix directory /home/rafal/.wine-pipelight. 
[PIPELIGHT:LIN:silverlight5.0] checking plugin installation - this might take some time. 
[install-dependency] wine-silverlight5.0-installer is already installed in '/home/rafal/.wine-pipelight'. 
[install-dependency] wine-mpg2splt-installer is already installed in '/home/rafal/.wine-pipelight'. 
fixme:winediag:start_process Wine Staging 1.9.7 is a testing version containing experimental patches. 
fixme:winediag:start_process Please mention your exact version when filing bug reports on winehq.org. 
wine: Nie znaleziono biblioteki DLL. 
err:wineboot:ProcessRunKeys Error running cmd L"C:\\windows\\system32\\winemenubuilder.exe -a -r" (1157) 
[PIPELIGHT:WIN:silverlight5.0] embedded mode   is on. 
[PIPELIGHT:WIN:silverlight5.0] windowless mode  is off. 
[PIPELIGHT:WIN:silverlight5.0] linux windowless mode is off. 
[PIPELIGHT:WIN:silverlight5.0] force SetWindow  is off. 
[PIPELIGHT:WIN:silverlight5.0] window class hook  is on. 
[PIPELIGHT:WIN:silverlight5.0] strict draw ordering is off. 
[PIPELIGHT:WIN:silverlight5.0] replaced API function CreateWindowExA. 
[PIPELIGHT:WIN:silverlight5.0] replaced API function CreateWindowExW. 
[PIPELIGHT:WIN:silverlight5.0] replaced API function TrackPopupMenuEx. 
[PIPELIGHT:WIN:silverlight5.0] replaced API function TrackPopupMenu. 
fixme:ntdll:EtwRegisterTraceGuidsW (0x7b8d1f07, 0x7b96f118, {aa087e0e-0b35-4e28-8f3a-440c3f51eef1}, 1, 0x68f628, (null), (null), 0x7b96f118): stub 
fixme:ntdll:EtwRegisterTraceGuidsW register trace class {aa087e0e-0b35-4e28-8f3a-440c3f51eef1} 
[PIPELIGHT:WIN:silverlight5.0] init successful! 
[PIPELIGHT:WIN:silverlight5.0] OpenGL Vendor: Intel Open Source Technology Center 
[PIPELIGHT:WIN:silverlight5.0] OpenGL Renderer: Mesa DRI Intel(R) Haswell Mobile x86/MMX/SSE2 
[PIPELIGHT:WIN:silverlight5.0] Your GPU is in the whitelist, hardware acceleration should work. 
1500922322191 addons.manager DEBUG Starting provider: PreviousExperimentProvider 
1500922322191 addons.manager DEBUG Registering shutdown blocker for PreviousExperimentProvider 
1500922322192 addons.manager DEBUG Provider finished startup: PreviousExperimentProvider 
1500922322196 DeferredSave.extensions.json DEBUG Starting write 
1500922322196 DeferredSave.addons.json DEBUG Starting write 
1500922322209 DeferredSave.extensions.json DEBUG Write succeeded 
1500922322210 DeferredSave.addons.json DEBUG Write succeeded 

(/usr/lib/firefox/firefox:22291): GLib-GObject-CRITICAL **: g_object_ref: assertion 'object->ref_count > 0' failed 

(/usr/lib/firefox/firefox:22291): GLib-GObject-CRITICAL **: g_object_unref: assertion 'object->ref_count > 0' failed 

(/usr/lib/firefox/firefox:22291): GLib-GObject-CRITICAL **: g_object_ref: assertion 'object->ref_count > 0' failed 

(/usr/lib/firefox/firefox:22291): GLib-GObject-CRITICAL **: g_object_unref: assertion 'object->ref_count > 0' failed 

Build info: version: '2.53.1', revision: 'a36b8b1cd5757287168e54b817830adce9b0158d', time: '2016-06-30 19:26:09' 
System info: host: 'rafal-Lenovo-G510', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '4.2.0-36-generic', java.version: '1.8.0_77' 
Driver info: driver.version: FirefoxDriver 
    at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:125) 
    at org.openqa.selenium.firefox.FirefoxDriver.startClient(FirefoxDriver.java:271) 
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:119) 
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:216) 
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:211) 
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:207) 
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:120) 
    at Main.main(Main.java:9) 
Caused by: org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output: 
amed-provider> 
1500922321841 addons.manager DEBUG Registering shutdown blocker for <unnamed-provider> 
1500922321841 addons.manager DEBUG Provider finished startup: <unnamed-provider> 
1500922321902 DeferredSave.extensions.json DEBUG Write succeeded 
1500922321902 addons.xpi-utils DEBUG XPI Database saved, setting schema version preference to 19 
1500922321902 DeferredSave.extensions.json DEBUG Starting timer 
1500922321919 addons.repository DEBUG No addons.json found. 
1500922321919 DeferredSave.addons.json DEBUG Save changes 
1500922321921 DeferredSave.addons.json DEBUG Starting timer 
[PIPELIGHT:LIN:unknown] attached to process. 
[PIPELIGHT:LIN:unknown] checking environment variable PIPELIGHT_SILVERLIGHT5_0_CONFIG. 
[PIPELIGHT:LIN:unknown] searching for config file pipelight-silverlight5.0. 
[PIPELIGHT:LIN:unknown] trying to load config file from '/home/rafal/.config/pipelight-silverlight5.0'. 
[PIPELIGHT:LIN:unknown] trying to load config file from '/etc/pipelight-silverlight5.0'. 
[PIPELIGHT:LIN:unknown] trying to load config file from '/usr/share/pipelight/configs/pipelight-silverlight5.0'. 
[PIPELIGHT:LIN:unknown] sandbox not found or not installed! 
[PIPELIGHT:LIN:silverlight5.0] using wine prefix directory /home/rafal/.wine-pipelight. 
[PIPELIGHT:LIN:silverlight5.0] checking plugin installation - this might take some time. 
[install-dependency] wine-silverlight5.0-installer is already installed in '/home/rafal/.wine-pipelight'. 
[install-dependency] wine-mpg2splt-installer is already installed in '/home/rafal/.wine-pipelight'. 
fixme:winediag:start_process Wine Staging 1.9.7 is a testing version containing experimental patches. 
fixme:winediag:start_process Please mention your exact version when filing bug reports on winehq.org. 
wine: Nie znaleziono biblioteki DLL. 
err:wineboot:ProcessRunKeys Error running cmd L"C:\\windows\\system32\\winemenubuilder.exe -a -r" (1157) 
[PIPELIGHT:WIN:silverlight5.0] embedded mode   is on. 
[PIPELIGHT:WIN:silverlight5.0] windowless mode  is off. 
[PIPELIGHT:WIN:silverlight5.0] linux windowless mode is off. 
[PIPELIGHT:WIN:silverlight5.0] force SetWindow  is off. 
[PIPELIGHT:WIN:silverlight5.0] window class hook  is on. 
[PIPELIGHT:WIN:silverlight5.0] strict draw ordering is off. 
[PIPELIGHT:WIN:silverlight5.0] replaced API function CreateWindowExA. 
[PIPELIGHT:WIN:silverlight5.0] replaced API function CreateWindowExW. 
[PIPELIGHT:WIN:silverlight5.0] replaced API function TrackPopupMenuEx. 
[PIPELIGHT:WIN:silverlight5.0] replaced API function TrackPopupMenu. 
fixme:ntdll:EtwRegisterTraceGuidsW (0x7b8d1f07, 0x7b96f118, {aa087e0e-0b35-4e28-8f3a-440c3f51eef1}, 1, 0x68f628, (null), (null), 0x7b96f118): stub 
fixme:ntdll:EtwRegisterTraceGuidsW register trace class {aa087e0e-0b35-4e28-8f3a-440c3f51eef1} 
[PIPELIGHT:WIN:silverlight5.0] init successful! 
[PIPELIGHT:WIN:silverlight5.0] OpenGL Vendor: Intel Open Source Technology Center 
[PIPELIGHT:WIN:silverlight5.0] OpenGL Renderer: Mesa DRI Intel(R) Haswell Mobile x86/MMX/SSE2 
[PIPELIGHT:WIN:silverlight5.0] Your GPU is in the whitelist, hardware acceleration should work. 
1500922322191 addons.manager DEBUG Starting provider: PreviousExperimentProvider 
1500922322191 addons.manager DEBUG Registering shutdown blocker for PreviousExperimentProvider 
1500922322192 addons.manager DEBUG Provider finished startup: PreviousExperimentProvider 
1500922322196 DeferredSave.extensions.json DEBUG Starting write 
1500922322196 DeferredSave.addons.json DEBUG Starting write 
1500922322209 DeferredSave.extensions.json DEBUG Write succeeded 
1500922322210 DeferredSave.addons.json DEBUG Write succeeded 

(/usr/lib/firefox/firefox:22291): GLib-GObject-CRITICAL **: g_object_ref: assertion 'object->ref_count > 0' failed 

(/usr/lib/firefox/firefox:22291): GLib-GObject-CRITICAL **: g_object_unref: assertion 'object->ref_count > 0' failed 

(/usr/lib/firefox/firefox:22291): GLib-GObject-CRITICAL **: g_object_ref: assertion 'object->ref_count > 0' failed 

(/usr/lib/firefox/firefox:22291): GLib-GObject-CRITICAL **: g_object_unref: assertion 'object->ref_count > 0' failed 

    at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:113) 
    ... 7 more 

看来春季开机管理硒以其他方式。也许有人知道如何用springboot运行这个代码示例。请帮助。

+0

你有没有安装firefox,它可以从命令行? –

+0

是的。正如我写的没有spring-boot依赖一切正常。 –

回答

0

不确定你使用的springboot作为你的代码不使用它,但是它的价值Springboot有一个不同于典型的主类。

试着改变你的主要是这样的:

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

public class Main implements CommandLineRunner { 
    public static void main(String[] args) 
    { 
     SpringApplication.run(Main.class, args); 
    } 

    @Override 
    public void run(String... args) throws Exception { 
     System.setProperty("webdriver.gecko.driver", "/home/rafal/geckodriver"); 
     WebDriver webDriver = new FirefoxDriver(); 
     webDriver.get("http://google.com"); 
    } 
} 

的SpringApplication.run方法将启动Tomcat服务器,并做一些其他magic这将使春节快乐,和run method采用Spring框架的优势来执行逻辑在Spring初始化之后,但在SpringApplication.run方法完成之前。

+0

Thx为您的答案。我知道我没有正确地启动应用程序。但我注意到,只有springboot插件的用法足以导致错误。我用你的代码示例,但同样的问题出现。 –

0

我不得不明确定义所有的硒依赖关系,而不仅仅是selenium-java。用这些其他硒依赖关系更新您的gradle依赖关系。

compile "org.seleniumhq.selenium:selenium-server:${seleniumVersion}" 
compile "org.seleniumhq.selenium:selenium-java:${seleniumVersion}" 
compile "org.seleniumhq.selenium:selenium-leg-rc:${seleniumVersion}" 
compile "org.seleniumhq.selenium:selenium-api:${seleniumVersion}" 
compile "org.seleniumhq.selenium:selenium-chrome-driver:${seleniumVersion}" 
compile "org.seleniumhq.selenium:selenium-edge-driver:${seleniumVersion}" 
compile "org.seleniumhq.selenium:selenium-firefox-driver:${seleniumVersion}" 
compile "org.seleniumhq.selenium:selenium-ie-driver:${seleniumVersion}" 
compile "org.seleniumhq.selenium:selenium-opera-driver:${seleniumVersion}" 
compile "org.seleniumhq.selenium:selenium-remote-driver:${seleniumVersion}" 
compile "org.seleniumhq.selenium:selenium-safari-driver:${seleniumVersion}" 
compile "org.seleniumhq.selenium:selenium-support:${seleniumVersion}"