如果指定了直接节点ip,则IE11测试运行但在指定网格集线器URL时失败

时间:2018-01-21 10:56:01

标签: selenium selenium-grid

我使用nodejs selenium-standalone,我有:

1)使用role = hub

在Mac上运行的selenium-standalone

2)在Mac上使用role = node运行selenium-standalone(在本地Mac浏览器上运行测试)

3)Windows 10安装在parallels桌面上,运行带有role = node

的selenium-standalone

4)IE11已针对本文https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver#required-configuration

进行了配置

我的测试中有gridUrl配置(yandex gemini),当我将它设置为windows node url(http://10.211.55.4:5555/wd/hub)时,IE11测试工作正常。但是当我将gridUrl设置为正确的值(意味着本地网格集线器127.0.0.1:4444/wd/hub)时,IE11将打开卡在"这是WebDriver服务器的初始启动页面。"和"只允许本地连接"在控制台中。在这种情况下,所有其他Windows浏览器都可以正常工作(chrome,firefox,edge)。在mac selenium网格集线器控制台或windows selenium节点控制台中没有任何错误 - 似乎网格集线器不知何故错误地尝试调用Windows节点IEDriver。

启动selenium的命令:

1)MacOS中心:

java -jar 3.8.1-server.jar -role hub

2)Windows10节点:

java -jar 3.8.1-server.jar -role node -hub http://192.168.1.4:4444/grid/register

在此之后,我可以在MacOS http://127.0.0.1:4444/grid/console上看到所有节点和浏览器。

我使用selenium 3.8.1,IEdriver x64 3.8.0

MacOS hub terminal screenshot:

MacOS hub terminal screenshot

Windows node cmd screenshot:

Windows node cmd screenshot

使用配置的MacOS网格集线器控制台屏幕截图:

MacOS grid hub console screenshot with config

MacOS网格集线器控制台截图:

MacOS grid hub console screenshot

集线器和节点的DEBUG模式输出:

Windows节点控制台成功输出(不使用网格集线器直接连接):

2018-01-21 22:07:43.348:INFO:osjshC.ROOT:qtp31280858-9: org.openqa.selenium.remote.server.WebDriverServlet-11d44a3: Initialising WebDriverServlet

22:07:43.379 INFO - Found handler: org.openqa.selenium.remote.server.commandhandler.BeginSession@1f51925

22:07:43.379 INFO - /session: Executing POST on /session (handler: BeginSession)

22:07:43.458 INFO - Capabilities are: Capabilities {browserName: internet explorer, javascriptEnabled: true, platform: WINDOWS, version: }

22:07:43.458 INFO - Capabilities {browserName: internet explorer, javascriptEnabled: true, platform: WINDOWS, version: } matched class org.openqa.selenium.remote.server.ServicedSession$Factory (provider: org.openqa.selenium.ie.InternetExplorerDriverService)

Started InternetExplorerDriver server (64-bit)
3.8.0.0
Listening on port 3512

Only local connections are allowed

22:07:43.770 DEBUG - CookieSpec selected: default

22:07:43.770 DEBUG - Auth cache not set in the context

22:07:45.551 INFO - Detected dialect: W3C

22:07:45.598 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@c91496

22:07:45.598 INFO - Handler thread for session 7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f (internet explorer): Executing POST on /session/7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f/window/current/size (handler: ServicedSession)

22:07:45.770 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@c91496

22:07:45.770 INFO - Handler thread for session 7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f (internet explorer): Executing POST on /session/7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f/execute (handler: ServicedSession)

22:07:45.833 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@c91496

22:07:45.833 INFO - Handler thread for session 7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f (internet explorer): Executing POST on /session/7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f/moveto (handler: ServicedSession)

22:07:45.865 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@c91496

22:07:45.865 INFO - Handler thread for session 7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f (internet explorer): Executing POST on /session/7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f/url (handler: ServicedSession)

22:07:46.428 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@c91496

22:07:46.428 INFO - Handler thread for session 7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f (internet explorer): Executing POST on /session/7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f/execute (handler: ServicedSession)

22:07:46.489 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@c91496

22:07:46.489 INFO - Handler thread for session 7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f (internet explorer): Executing POST on /session/7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f/execute (handler: ServicedSession)

22:07:46.552 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@c91496

22:07:46.552 INFO - Handler thread for session 7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f (internet explorer): Executing POST on /session/7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f/execute (handler: ServicedSession)

22:07:46.615 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@c91496

22:07:46.615 INFO - Handler thread for session 7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f (internet explorer): Executing POST on /session/7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f/execute (handler: ServicedSession)

22:07:47.208 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@c91496

22:07:47.208 INFO - Handler thread for session 7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f (internet explorer): Executing GET on /session/7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f/screenshot (handler: ServicedSession)

22:07:47.301 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@c91496

22:07:47.301 INFO - Handler thread for session 7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f (internet explorer): Executing POST on /session/7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f/execute (handler: ServicedSession)

22:07:47.349 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@c91496

22:07:47.349 INFO - Handler thread for session 7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f (internet explorer): Executing GET on /session/7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f/screenshot (handler: ServicedSession)

22:07:47.520 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@c91496

22:07:47.520 INFO - Handler thread for session 7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f (internet explorer): Executing POST on /session/7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f/execute (handler: ServicedSession)

22:07:47.599 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@c91496

22:07:47.599 INFO - Handler thread for session 7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f (internet explorer): Executing GET on /session/7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f/screenshot (handler: ServicedSession)

22:07:47.771 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@c91496

22:07:47.786 INFO - Handler thread for session 7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f (internet explorer): Executing POST on /session/7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f/execute (handler: ServicedSession)

22:07:47.833 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@c91496

22:07:47.833 INFO - Handler thread for session 7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f (internet explorer): Executing GET on /session/7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f/screenshot (handler: ServicedSession)

22:07:48.567 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@c91496

22:07:48.567 INFO - Handler thread for session 7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f (internet explorer): Executing DELETE on /session/7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f (handler: ServicedSession)

22:07:48.598 INFO - Removing session org.openqa.selenium.remote.server.ServicedSession@c91496

Windows节点控制台输出失败(通过mac grid hub连接):

2018-01-21 22:14:36.612:INFO:osjshC.ROOT:qtp29933260-14: org.openqa.selenium.remote.server.WebDriverServlet-1474f18: Initialising WebDriverServlet

22:14:36.628 INFO - Found handler: org.openqa.selenium.remote.server.commandhandler.BeginSession@1f793e6

22:14:36.628 INFO - /session: Executing POST on /session (handler: BeginSession)

22:14:36.721 INFO - Capabilities are: Capabilities {browserName: internet explorer, javascriptEnabled: true, platform: WINDOWS, version: }

22:14:36.721 INFO - Capabilities {browserName: internet explorer, javascriptEnabled: true, platform: WINDOWS, version: } matched class org.openqa.selenium.remote.server.ServicedSession$Factory (provider: org.openqa.selenium.ie.InternetExplorerDriverService)

22:14:36.752 DEBUG - Waiting for [http://localhost:15388/status]

22:14:36.752 DEBUG - Polling http://localhost:15388/status

Started InternetExplorerDriver server (64-bit)
3.8.0.0
Listening on port 15388
Only local connections are allowed

22:14:37.269 DEBUG - Polling http://localhost:15388/status

22:14:37.269 DEBUG - sun.net.www.MessageHeader@14906bf5 pairs: {GET /status HTTP/1.1: null}{User-Agent: Java/1.8.0_161}{Host: localhost:15388}{Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2}{Connection: keep-alive}

22:14:37.269 DEBUG - sun.net.www.MessageHeader@4b81f27 pairs: {null: HTTP/1.1 200 OK}{Content-Length: 185}{Content-Type: application/json; charset=UTF-8}{Cache-Control: no-cache}{Vary: Accept-Charset, Accept-Encoding, Accept-Language, Accept}{Accept-Ranges: bytes}{Connection: close}

22:14:37.283 DEBUG - CookieSpec selected: default

22:14:37.283 DEBUG - Auth cache not set in the context
22:14:37.283 DEBUG - Connection request: [route: {}->http://localhost:15388][total kept alive: 0; route allocated: 0 of 2000; total allocated: 0 of 2000]

22:14:37.283 DEBUG - Connection leased: [id: 2][route: {}->http://localhost:15388][total kept alive: 0; route allocated: 1 of 2000; total allocated: 1 of 2000]
22:14:37.283 DEBUG - Opening connection {}->http://localhost:15388
22:14:37.283 DEBUG - Connecting to localhost/127.0.0.1:15388

22:14:37.283 DEBUG - Connection established 127.0.0.1:52058<->127.0.0.1:15388
22:14:37.283 DEBUG - http-outgoing-2: set socket timeout to 10800000
22:14:37.283 DEBUG - Executing request POST /session HTTP/1.1
22:14:37.283 DEBUG - Target auth state: UNCHALLENGED
22:14:37.283 DEBUG - Proxy auth state: UNCHALLENGED

22:14:37.283 DEBUG - http-outgoing-2 >> POST /session HTTP/1.1
22:14:37.283 DEBUG - http-outgoing-2 >> Content-Type: application/json; charset=utf-8
22:14:37.283 DEBUG - http-outgoing-2 >> Content-Length: 364
22:14:37.283 DEBUG - http-outgoing-2 >> Host: localhost:15388
22:14:37.283 DEBUG - http-outgoing-2 >> Connection: Keep-Alive

22:14:37.283 DEBUG - http-outgoing-2 >> User-Agent: Apache-HttpClient/4.5.3 (Java/1.8.0_161)
22:14:37.283 DEBUG - http-outgoing-2 >> Accept-Encoding: gzip,deflate
22:14:37.283 DEBUG - http-outgoing-2 >> "POST /session HTTP/1.1[\r][\n]"
22:14:37.283 DEBUG - http-outgoing-2 >> "Content-Type: application/json; charset=utf-8[\r][\n]"
22:14:37.283 DEBUG - http-outgoing-2 >> "Content-Length: 364[\r][\n]"

22:14:37.283 DEBUG - http-outgoing-2 >> "Host: localhost:15388[\r][\n]"
22:14:37.283 DEBUG - http-outgoing-2 >> "Connection: Keep-Alive[\r][\n]"
22:14:37.283 DEBUG - http-outgoing-2 >> "User-Agent: Apache-HttpClient/4.5.3 (Java/1.8.0_161)[\r][\n]"
22:14:37.283 DEBUG - http-outgoing-2 >> "Accept-Encoding: gzip,deflate[\r][\n]"
22:14:37.283 DEBUG - http-outgoing-2 >> "[\r][\n]"

22:14:37.283 DEBUG - http-outgoing-2 >> "{[\n]"
22:14:37.283 DEBUG - http-outgoing-2 >> "  "desiredCapabilities": {"browserName":"internet explorer","javascriptEnabled":true,"platform":"WINDOWS","version":""},[\n]"

22:14:37.283 DEBUG - http-outgoing-2 >> "  "capabilities": {[\n]"
22:14:37.283 DEBUG - http-outgoing-2 >> "    "desiredCapabilities": {"browserName":"internet explorer","javascriptEnabled":true,"platform":"WINDOWS","version":""},[\n]"
22:14:37.283 DEBUG - http-outgoing-2 >> "    "firstMatch": [[\n]"
22:14:37.283 DEBUG - http-outgoing-2 >> "      {"browserName":"internet explorer","platformName":"windows"}[\n]"

22:14:37.283 DEBUG - http-outgoing-2 >> "    ][\n]"
22:14:37.283 DEBUG - http-outgoing-2 >> "  }[\n]"
22:14:37.283 DEBUG - http-outgoing-2 >> "}"

22:14:38.833 DEBUG - http-outgoing-2 << "HTTP/1.1 200 OK[\r][\n]"

22:14:38.833 DEBUG - http-outgoing-2 << "Content-Length: 692[\r][\n]"
22:14:38.833 DEBUG - http-outgoing-2 << "Content-Type: application/json; charset=UTF-8[\r][\n]"
22:14:38.833 DEBUG - http-outgoing-2 << "Cache-Control: no-cache[\r][\n]"
22:14:38.833 DEBUG - http-outgoing-2 << "Vary: Accept-Charset, Accept-Encoding, Accept-Language, Accept[\r][\n]"
22:14:38.833 DEBUG - http-outgoing-2 << "Accept-Ranges: bytes[\r][\n]"
22:14:38.833 DEBUG - http-outgoing-2 << "Connection: close[\r][\n]"
22:14:38.833 DEBUG - http-outgoing-2 << "[\r][\n]"
22:14:38.833 DEBUG - http-outgoing-2 << "{"value":{"capabilities":{"acceptInsecureCerts":false,"browserName":"internet explorer","browserVersion":"11","pageLoadStrategy":"normal","platformName":"windows","proxy":{},"se:ieOptions":{"browserAttachTimeout":0,"elementScrollBehavior":0,"enablePersistentHover":true,"ie.browserCommandLineSwitches":"","ie.ensureCleanSession":false,"ie.fileUploadDialogTimeout":3000,"ie.forceCreateProcessApi":false,"ignoreProtectedModeSettings":false,"ignoreZoomSetting":false,"initialBrowserUrl":"http://localhost:15388/","nativeEvents":true,"requireWindowFocus":false},"setWindowRect":true,"timeouts":{"implicit":0,"pageLoad":300000,"script":30000}},"sessionId":"3aba8a66-2b37-4516-b16c-b34acaea1555"}}[\n]"
22:14:38.833 DEBUG - http-outgoing-2 << "[\r][\n]"
22:14:38.833 DEBUG - http-outgoing-2 << HTTP/1.1 200 OK
22:14:38.833 DEBUG - http-outgoing-2 << Content-Length: 692
22:14:38.833 DEBUG - http-outgoing-2 << Content-Type: application/json; charset=UTF-8
22:14:38.833 DEBUG - http-outgoing-2 << Cache-Control: no-cache
22:14:38.833 DEBUG - http-outgoing-2 << Vary: Accept-Charset, Accept-Encoding, Accept-Language, Accept
22:14:38.833 DEBUG - http-outgoing-2 << Accept-Ranges: bytes
22:14:38.833 DEBUG - http-outgoing-2 << Connection: close
22:14:38.833 DEBUG - http-outgoing-2: Close connection
22:14:38.833 DEBUG - Connection discarded
22:14:38.833 DEBUG - Connection released: [id: 2][route: {}->http://localhost:15388][total kept alive: 0; route allocated: 0 of 2000; total allocated: 0 of 2000]

22:14:38.848 INFO - Detected dialect: W3C

22:14:38.864 DEBUG - Executing: newSession [null, newSession {desiredCapabilities=Capabilities {acceptInsecureCerts: false, browserName: internet explorer, browserVersion: 11, pageLoadStrategy: normal, platformName: windows, proxy: Proxy(), se:ieOptions: {browserAttachTimeout: 0, elementScrollBehavior: 0, enablePersistentHover: true, ie.browserCommandLineSwitches: , ie.ensureCleanSession: false, ie.fileUploadDialogTimeout: 3000, ie.forceCreateProcessApi: false, ignoreProtectedModeSettings: false, ignoreZoomSetting: false, initialBrowserUrl: http://localhost:15388/, nativeEvents: true, requireWindowFocus: false}, setWindowRect: true, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}}}]

22:14:38.864 DEBUG - Executed: [null, newSession {desiredCapabilities=Capabilities {acceptInsecureCerts: false, browserName: internet explorer, browserVersion: 11, pageLoadStrategy: normal, platformName: windows, proxy: Proxy(), se:ieOptions: {browserAttachTimeout: 0, elementScrollBehavior: 0, enablePersistentHover: true, ie.browserCommandLineSwitches: , ie.ensureCleanSession: false, ie.fileUploadDialogTimeout: 3000, ie.forceCreateProcessApi: false, ignoreProtectedModeSettings: false, ignoreZoomSetting: false, initialBrowserUrl: http://localhost:15388/, nativeEvents: true, requireWindowFocus: false}, setWindowRect: true, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}}}]

22:14:40.676 DEBUG - CookieSpec selected: default

22:14:40.676 DEBUG - Auth cache not set in the context

1 个答案:

答案 0 :(得分:2)

我可以清楚地看到您的 Selenium Grid Hub 配置存在一些不匹配,并且 Selenium Grid Node 注册 {{1} } 如下:

  • Selenium Grid Hub 日志说:

    Selenium Grid Hub
  • Nodes should register to http://10.37.129.2:4444/grid/register/ 日志说:

    Selenium Grid Node

此外,当您启动节点以使用Registering the node to the hub: http://192.168.1.4:4444/grid/register IEDriverServer时,您已使用默认命令:

Internet Explorer

这是您在 FAILED 用例中看不到 java -jar 3.8.1-server.jar -role node -hub http://192.168.1.4:4444/grid/register 的确切原因,如下所示:

INFO - Detected dialect: W3C

您需要提及您打算使用的Started InternetExplorerDriver server (64-bit) 3.8.0.0 Listening on port 15388 Only local connections are allowed 22:14:37.269 DEBUG - Polling http://localhost:15388/status 22:14:37.269 DEBUG - sun.net.www.MessageHeader@14906bf5 pairs: {GET /status HTTP/1.1: null}{User-Agent: Java/1.8.0_161}{Host: localhost:15388}{Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2}{Connection: keep-alive} 22:14:37.269 DEBUG - sun.net.www.MessageHeader@4b81f27 pairs: {null: HTTP/1.1 200 OK}{Content-Length: 185}{Content-Type: application/json; charset=UTF-8}{Cache-Control: no-cache}{Vary: Accept-Charset, Accept-Encoding, Accept-Language, Accept}{Accept-Ranges: bytes}{Connection: close} 22:14:37.283 DEBUG - CookieSpec selected: default 22:14:37.283 DEBUG - Auth cache not set in the context 变体,如下所示:

WebDriver

因此,您的日志消息将包含:

java -Dwebdriver.ie.driver=IEDriverServer.exe -jar selenium-server-standalone-3.8.1.jar -role node -hub http://192.168.1.50:4444/grid/register

您可以看到详细讨论here Doug Simmons明确提到:

  

<强> Started InternetExplorerDriver server (64-bit) 3.7.0.0 Listening on port 18597 Only local connections are allowed 20:31:59.237 INFO - Detected dialect: W3C 20:31:59.592 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@40024bf3 20:31:59.593 INFO - Handler thread for session b020db2b-f3db-43f6-a3db-7a21b8c440f7 (internet explorer): Executing POST on /session/b020db2b-f3db-43f6-a3db-7a21b8c440f7/url (handler: ServicedSession) 20:31:59.663 INFO - To upstream: {"url":"http://google.com/"}

解决方案

按照上述步骤配置 The server (grid node) needs to be started with the system property -- not the client i.e. you need to point the node to the geckodriver installation on the node Selenium Grid Hub

  • 启动 Selenium Grid Node

    Selenium Grid Hub
  • 应生成以下日志:

    java -jar selenium-server-standalone-3.8.1.jar -role hub
    
  • 观察 19:40:59.322 INFO - Selenium build info: version: '3.8.1', revision: '6e95a6684b' 19:40:59.324 INFO - Launching Selenium Grid hub 2018-01-23 19:41:01.710:INFO::main: Logging initialized @2960ms to org.seleniumhq.jetty9.util.log.StdErrLog 19:41:01.764 INFO - Will listen on 4444 2018-01-23 19:41:01.881:INFO:osjs.Server:main: jetty-9.4.7.v20170914 2018-01-23 19:41:01.923:INFO:osjs.session:main: DefaultSessionIdManager workerName=node0 2018-01-23 19:41:01.924:INFO:osjs.session:main: No SessionScavenger set, using defaults 2018-01-23 19:41:01.928:INFO:osjs.session:main: Scavenging every 600000ms 2018-01-23 19:41:01.937:INFO:osjsh.ContextHandler:main: Started o.s.j.s.ServletContextHandler@1b68b9a4{/,null,AVAILABLE} 2018-01-23 19:41:01.959:INFO:osjs.AbstractConnector:main: Started ServerConnecto r@157632c9{HTTP/1.1,[http/1.1]}{0.0.0.0:4444} 2018-01-23 19:41:01.960:INFO:osjs.Server:main: Started @3211ms 19:41:01.960 INFO - Nodes should register to http://192.168.1.50:4444/grid/register/ 19:41:01.961 INFO - Selenium Grid hub is up and running http://192.168.1.50:4444

  • 通过Selenium Grid Hub URI打开 Selenium Grid Hub Console

    URL
  • http://192.168.1.50:4444/grid/console 的快照:

Selenium_Grid_Hub_Config_1

  • Selenium Grid Hub Config 1 的快照:

Selenium Grid Hub Config 2

  • Selenium Grid Hub Config 2 启动 Selenium Grid Node

    IE11
  • 确保在http://192.168.1.50:4444/grid/register

  • 注册 java -Dwebdriver.ie.driver=IEDriverServer.exe -jar selenium-server-standalone-3.8.1.jar -role node -hub http://192.168.1.50:4444/grid/register
  • 应在 Selenium Grid Node CLI上生成以下日志:

    Selenium Grid Node
  • 应在 19:46:22.516 INFO - Selenium build info: version: '3.8.1', revision: '6e95a6684b' 19:46:22.517 INFO - Launching a Selenium Grid node 2018-01-23 19:46:25.124:INFO::main: Logging initialized @4715ms to org.seleniumhq.jetty9.util.log.StdErrLog 19:46:25.178 INFO - Using `new FirefoxOptions()` is preferred to `DesiredCapabilities.firefox()` 19:46:25.221 INFO - Using `new ChromeOptions()` is preferred to `DesiredCapabilities.chrome()` 19:46:25.226 INFO - Using `new EdgeOptions()` is preferred to `DesiredCapabilities.edge()` 19:46:25.227 INFO - Driver class not found: com.opera.core.systems.OperaDriver 19:46:25.228 INFO - Using `new OperaOptions()` is preferred to `DesiredCapabilities.operaBlink()` 19:46:25.230 INFO - Using `new SafariOptions()` is preferred to `DesiredCapabilities.safari()` 19:46:25.232 INFO - Driver class not found: org.openqa.selenium.phantomjs.PhantomJSDriver 19:46:25.306 INFO - Driver provider class org.openqa.selenium.safari.SafariDriver registration is skipped: registration capabilities Capabilities {browserName: safari, platform: MAC, version: } does not match the current platform WIN8 19:46:25.371 INFO - Using `new ChromeOptions()` is preferred to `DesiredCapabilities.chrome()` 19:46:25.373 INFO - Using `new EdgeOptions()` is preferred to `DesiredCapabilities.edge()` 19:46:25.374 INFO - Using `new FirefoxOptions()` is preferred to `DesiredCapabilities.firefox()` 19:46:25.375 INFO - Using `new OperaOptions()` is preferred to `DesiredCapabilities.operaBlink()` 19:46:25.376 INFO - Using `new SafariOptions()` is preferred to `DesiredCapabilities.safari()` 19:46:25.391 INFO - Using the passthrough mode handler 2018-01-23 19:46:25.429:INFO:osjs.Server:main: jetty-9.4.7.v20170914 2018-01-23 19:46:25.472:WARN:osjs.SecurityHandler:main: ServletContext@o.s.j.s.S ervletContextHandler@38afe297{/,null,STARTING} has uncovered http methods for path: / 2018-01-23 19:46:25.481:INFO:osjsh.ContextHandler:main: Started o.s.j.s.ServletContextHandler@38afe297{/,null,AVAILABLE} 2018-01-23 19:46:25.503:INFO:osjs.AbstractConnector:main: Started ServerConnector@12bb9576{HTTP/1.1,[http/1.1]}{0.0.0.0:5555} 2018-01-23 19:46:25.504:INFO:osjs.Server:main: Started @5097ms 19:46:25.506 INFO - Selenium Grid node is up and ready to register to the hub 19:46:25.555 INFO - Starting auto registration thread. Will try to register every 5000 ms. 19:46:25.556 INFO - Registering the node to the hub: http://192.168.1.50:4444/grid/register 19:46:25.802 INFO - The node is registered to the hub and ready to use CLI上生成以下日志:

    Selenium Grid Hub
  • 20:59:54.695 INFO - Registered a node http://192.168.1.50:5555 的快照:

Selenium Grid Hub Console

  • 编写基本程序并从 Selenium Grid Hub Console 执行:

    Selenium Grid Node
  • public class test_IE_Grid { @Test public void test1() throws MalformedURLException { System.setProperty("webdriver.ie.driver", "C:\\Utility\\BrowserDrivers\\IEDriverServer.exe"); DesiredCapabilities cap = DesiredCapabilities.internetExplorer(); URL url = new URL("http://192.168.1.50:4444/wd/hub"); WebDriver driver = new RemoteWebDriver(url, cap); driver.get("http://google.com/"); System.out.println("Title is : "+driver.getTitle()); driver.quit(); } } CLI上观察以下日志:

    Selenium Grid Node
  • 2018-01-23 20:31:49.931:INFO:osjshC.ROOT:qtp1582071873-15: org.openqa.selenium.remote.server.WebDriverServlet-34123d65: Initialising WebDriverServlet 20:31:49.976 INFO - Found handler: org.openqa.selenium.remote.server.commandhandler.BeginSession@5769309d 20:31:49.990 INFO - /session: Executing POST on /session (handler: BeginSession) 20:31:50.085 INFO - Capabilities are: Capabilities {browserName: internet explorer, ensureCleanSession: true, platform: WINDOWS, version: } 20:31:50.089 INFO - Capabilities {browserName: internet explorer, ensureCleanSession: true, platform: WINDOWS, version: } matched class org.openqa.selenium.remote.server.ServicedSession$Factory (provider: org.openqa.selenium.ie.InternetExplorerDriverService) Started InternetExplorerDriver server (64-bit) 3.7.0.0 Listening on port 18597 Only local connections are allowed 20:31:59.237 INFO - Detected dialect: W3C 20:31:59.592 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@40024bf3 20:31:59.593 INFO - Handler thread for session b020db2b-f3db-43f6-a3db-7a21b8c440f7 (internet explorer): Executing POST on /session/b020db2b-f3db-43f6-a3db-7a21b8c440f7/url (handler: ServicedSession) 20:31:59.663 INFO - To upstream: {"url":"http://google.com/"} 20:32:11.793 INFO - To downstream: {"value":null} 20:32:11.821 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@40024bf3 20:32:11.823 INFO - Handler thread for session b020db2b-f3db-43f6-a3db-7a21b8c440f7 (internet explorer): Executing GET on /session/b020db2b-f3db-43f6-a3db-7a21b8c440f7/title (handler: ServicedSession) 20:32:11.844 INFO - To downstream: {"value":"Google"} 20:32:11.856 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@40024bf3 20:32:11.857 INFO - Handler thread for session b020db2b-f3db-43f6-a3db-7a21b8c440f7 (internet explorer): Executing DELETE on /session/b020db2b-f3db-43f6-a3db-7a21b8c440f7 (handler: ServicedSession) 20:32:11.870 INFO - To downstream: {"value":null} 20:32:11.883 INFO - Removing session org.openqa.selenium.remote.server.ServicedSession@40024bf3 20:32:11.890 INFO - To downstream: { "value" : null } CLI上观察以下日志:

    Selenium Grid Hub
  • IDE控制台输出:

    20:31:49.855 INFO - Got a request to create a new session: Capabilities {browserName: internet explorer, ensureCleanSession: true, platform: WINDOWS, version: }
    
    20:31:49.866 INFO - Trying to create a new session on test slot {seleniumProtocol=WebDriver, se:CONFIG_UUID=dd5107be-46cc-4411-816e-e51177b854c6, browserName=internet explorer, maxInstances=1, platform=WINDOWS}