2017-07-24 90 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}"