如何 运行 selenium-server-standalone?
how to run a selenium-server-standalone?
我正在尝试 运行 selenium 服务器,但出现错误:
rond-macpro:selenium eladb$ java -Dwebdriver.chrome.driver=./chromedriver -r selenium-server-standalone-2.44.0.jar
Unrecognized option: -r
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
没有-r(到底是什么?)
rond-macpro:selenium eladb$ java -Dwebdriver.chrome.driver=./chromedriver selenium-server-standalone-2.44.0.jar
Error: Could not find or load main class selenium-server-standalone-2.44.0.jar
我应该如何启动服务器?
如何设置一个非默认端口来监听?
这两篇文章:1 2 - 在语法方面存在矛盾。我觉得。
java -jar seleniumjar.jar -Dwebdriver.chrome.driver=./chromedriver
如果要指定端口做
java -jar seleniumjar.version.jar -Dwebdriver.chrome.driver=./chromedriver -port 4545
从 3.8.1 开始,不再需要指定驱动程序:
java -jar seleniumjar.jar
java -jar selenium-server-standalone-2.44.0.jar -port port_no
运行 独立 Selenium Server:
形式Jar Source主-Class是org.openqa.grid.selenium.GridLauncher
根据 GridRole
class - Selenium 服务器可以 运行 担任以下角色之一:
NOT_GRID
[If -role option is omitted the server runs standalone not being a part of a grid]>
HUB
[as a hub of a Selenium grid]
NODE
[as a node of a Selenium grid]
D:\> java -jar selenium-server-standalone-*.jar -host 127.0.0.1 -port 4444
不是网格
RC
(Selenium interface)
- IP:Port/selenium-server
:
Selenium Remote Control (RC) 需要在执行测试脚本之前启动服务器。 RC 服务器注入 Selenium 核心 (JavaScript)进入浏览器。核心(守护进程)通过您的测试脚本从服务器接收命令并在浏览器中执行它们,然后将结果发送给您的程序。但无法处理移动鼠标光标和移动执行。
Java 客户端驱动程序:
客户端-将您的浏览器配置为使用 Selenium 服务器作为 HTTP 代理,并通过 "/selenium-server/RemoteRunner.html?sessionId=1234"
将浏览器命令传递给服务器,客户端可以向 selenium 发送驱动程序 命令请求通过 HTTP 的服务器如下:
代码和请求:RC 服务器连续 运行 秒。我们创建一个守护进程并从中与浏览器通信。
Selenium daemon = new DefaultSelenium("172.16.20.156", 4464, "*firefox", "https://www.google.co.in/");
daemon.start(); -- daemon.stop(); (OR)
setUp("http://www.google.com/", "*firefox", 4454); selenium.windowMaximize();
GET:http://localhost:4454/selenium-server/driver/?cmd=open&1=https://www.google.co.in/&sessionId=9b1a232d9478497892e09cfc93cf665a
RC
(WebDriver
interface)
- IP:Port/wd/hub/static/resource/hub.html
:
WebDriver nativeDriver = new RemoteWebDriver(new URL("http://127.0.0.1:4454/wd/hub"), DesiredCapabilities.firefox());
Requests:
http://127.0.0.1:4454/wd/hub/session
/123...[SESSIONID]
/url
{ "url" : "http://demo.opencart.com/index.php?route=account/login" }
/execute
{ "script" : "document.querySelectorAll( arguments[0] )[0].click();", "args" : ['input.btn'] }
Grid: [- IP:Port/grid/console
]
HUB Grid HUB Running as a standalone server:
Hub 是一个中心点,它在多个节点机器上分发测试,这些节点机器注册到它以并行执行。
java -jar selenium-server-standalone-2.53.0.jar -host 127.0.0.1 -port 4454 -role hub -log "D:\HUB_Log.txt"
NODE [RC] 必须 post 向 HUB 请求才能注册,通过这个 URL - IP:Port//grid/register
.
java -jar selenium-server-standalone-2.53.0.jar -host 127.0.0.1 -port 4458 -role node
-hub http://127.0.0.1:4454/grid/register -hubHost 127.0.0.1 -hubPort 4454
-browser browserName=firefox,version=24.0, maxinstance=1,platform=WINDOWS7
-browser browserName=chrome,version=53.0,platform=WINDOWS
-Dwebdriver.chrome.driver=D:\Drivers\chromedrivers\2.24\chromedriver.exe
Running as a grid node:
浏览器实例信息:browserName=chrome,version=53.0,maxinstance=1,platform=WINDOWS 命令行参数 System Property values -Dproperty=value -Dchrome=driverAddress(如果value是包含空格的字符串,必须用双引号括起来)
使用 JSON 配置文件 .
的节点注册
D:\SeleniumJar_Source>java -jar selenium-server-standalone-2.53.0.jar -role node
-hub http://127.0.0.1:4454/grid/register
-nodeConfig registerNode.json
-Dwebdriver.chrome.driver="D:\Drivers\chromedrivers\2.24\chromedriver.exe"
-Dwebdriver.ie.driver="D:\Drivers\IEDrivers\iedriver64\IEDriverServer.exe"
-Dwebdriver.firefox.logfile="D:\FirefoxInstance.txt"
-Dwebdriver.chrome.logfile="D:\ChromeInstance.txt"
-Dwebdriver.ie.logfile="D:\IEInstance.txt"
WebDriver 在开始执行之前不需要任何服务器启动。你可以看到 WebDriver 就像一个普通的 Java 库一样:它是完全独立的,你不需要记住启动任何额外的进程或 运行 之前的任何安装程序使用它。
WebDriver driver = new FirefoxDriver();
@见
我想在@Saifur 的回答中添加更多网络驱动程序。
java -Dwebdriver.ie.driver=./IEDriverServer32.exe -Dwebdriver.chrome.driver=./chromedriver.exe -jar selenium.jar -port 4545
请注意,对于 IE,您 运行 32 位版本的驱动程序。它有效。我创建了一个 bat 文件并将其放入我也放置驱动程序的 selenium 文件夹中。
首先应该指定驱动程序部分,然后是 selenium jar :
java -Dwebdriver.chrome.driver=./chromedriver -jar selenium-server-standalone-3.141.59.jar
这适用于 Ubuntu 18.04
我正在尝试 运行 selenium 服务器,但出现错误:
rond-macpro:selenium eladb$ java -Dwebdriver.chrome.driver=./chromedriver -r selenium-server-standalone-2.44.0.jar
Unrecognized option: -r
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
没有-r(到底是什么?)
rond-macpro:selenium eladb$ java -Dwebdriver.chrome.driver=./chromedriver selenium-server-standalone-2.44.0.jar
Error: Could not find or load main class selenium-server-standalone-2.44.0.jar
我应该如何启动服务器?
如何设置一个非默认端口来监听?
这两篇文章:1 2 - 在语法方面存在矛盾。我觉得。
java -jar seleniumjar.jar -Dwebdriver.chrome.driver=./chromedriver
如果要指定端口做
java -jar seleniumjar.version.jar -Dwebdriver.chrome.driver=./chromedriver -port 4545
从 3.8.1 开始,不再需要指定驱动程序:
java -jar seleniumjar.jar
java -jar selenium-server-standalone-2.44.0.jar -port port_no
运行 独立 Selenium Server:
形式Jar Source主-Class是org.openqa.grid.selenium.GridLauncher
根据 GridRole
class - Selenium 服务器可以 运行 担任以下角色之一:
NOT_GRID
[If -role option is omitted the server runs standalone not being a part of a grid]>HUB
[as a hub of a Selenium grid]NODE
[as a node of a Selenium grid]
D:\> java -jar selenium-server-standalone-*.jar -host 127.0.0.1 -port 4444
不是网格
RC
(Selenium interface)
- IP:Port/selenium-server
:
Selenium Remote Control (RC) 需要在执行测试脚本之前启动服务器。 RC 服务器注入 Selenium 核心 (JavaScript)进入浏览器。核心(守护进程)通过您的测试脚本从服务器接收命令并在浏览器中执行它们,然后将结果发送给您的程序。但无法处理移动鼠标光标和移动执行。
Java 客户端驱动程序:
客户端-将您的浏览器配置为使用 Selenium 服务器作为 HTTP 代理,并通过 "/selenium-server/RemoteRunner.html?sessionId=1234"
将浏览器命令传递给服务器,客户端可以向 selenium 发送驱动程序 命令请求通过 HTTP 的服务器如下:
代码和请求:RC 服务器连续 运行 秒。我们创建一个守护进程并从中与浏览器通信。
Selenium daemon = new DefaultSelenium("172.16.20.156", 4464, "*firefox", "https://www.google.co.in/");
daemon.start(); -- daemon.stop(); (OR)
setUp("http://www.google.com/", "*firefox", 4454); selenium.windowMaximize();
GET:http://localhost:4454/selenium-server/driver/?cmd=open&1=https://www.google.co.in/&sessionId=9b1a232d9478497892e09cfc93cf665a
RC
(WebDriver
interface)
- IP:Port/wd/hub/static/resource/hub.html
:
WebDriver nativeDriver = new RemoteWebDriver(new URL("http://127.0.0.1:4454/wd/hub"), DesiredCapabilities.firefox());
Requests:
http://127.0.0.1:4454/wd/hub/session
/123...[SESSIONID]
/url
{ "url" : "http://demo.opencart.com/index.php?route=account/login" }
/execute
{ "script" : "document.querySelectorAll( arguments[0] )[0].click();", "args" : ['input.btn'] }
Grid: [- IP:Port/grid/console
]
HUB Grid HUB Running as a standalone server:
Hub 是一个中心点,它在多个节点机器上分发测试,这些节点机器注册到它以并行执行。
java -jar selenium-server-standalone-2.53.0.jar -host 127.0.0.1 -port 4454 -role hub -log "D:\HUB_Log.txt"
NODE [RC] 必须 post 向 HUB 请求才能注册,通过这个 URL - IP:Port//grid/register
.
java -jar selenium-server-standalone-2.53.0.jar -host 127.0.0.1 -port 4458 -role node
-hub http://127.0.0.1:4454/grid/register -hubHost 127.0.0.1 -hubPort 4454
-browser browserName=firefox,version=24.0, maxinstance=1,platform=WINDOWS7
-browser browserName=chrome,version=53.0,platform=WINDOWS
-Dwebdriver.chrome.driver=D:\Drivers\chromedrivers\2.24\chromedriver.exe
Running as a grid node:
浏览器实例信息:browserName=chrome,version=53.0,maxinstance=1,platform=WINDOWS 命令行参数 System Property values -Dproperty=value -Dchrome=driverAddress(如果value是包含空格的字符串,必须用双引号括起来)
使用 JSON 配置文件
D:\SeleniumJar_Source>java -jar selenium-server-standalone-2.53.0.jar -role node
-hub http://127.0.0.1:4454/grid/register
-nodeConfig registerNode.json
-Dwebdriver.chrome.driver="D:\Drivers\chromedrivers\2.24\chromedriver.exe"
-Dwebdriver.ie.driver="D:\Drivers\IEDrivers\iedriver64\IEDriverServer.exe"
-Dwebdriver.firefox.logfile="D:\FirefoxInstance.txt"
-Dwebdriver.chrome.logfile="D:\ChromeInstance.txt"
-Dwebdriver.ie.logfile="D:\IEInstance.txt"
WebDriver 在开始执行之前不需要任何服务器启动。你可以看到 WebDriver 就像一个普通的 Java 库一样:它是完全独立的,你不需要记住启动任何额外的进程或 运行 之前的任何安装程序使用它。
WebDriver driver = new FirefoxDriver();
@见
我想在@Saifur 的回答中添加更多网络驱动程序。
java -Dwebdriver.ie.driver=./IEDriverServer32.exe -Dwebdriver.chrome.driver=./chromedriver.exe -jar selenium.jar -port 4545
请注意,对于 IE,您 运行 32 位版本的驱动程序。它有效。我创建了一个 bat 文件并将其放入我也放置驱动程序的 selenium 文件夹中。
首先应该指定驱动程序部分,然后是 selenium jar :
java -Dwebdriver.chrome.driver=./chromedriver -jar selenium-server-standalone-3.141.59.jar
这适用于 Ubuntu 18.04