我正在尝试运行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
我该如何启动服务器?
如何设置要监听的非默认端口?
答案 0 :(得分:29)
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
答案 1 :(得分:9)
运行独立Selenium Server:
表单Jar Source 主要类 org.openqa.grid.selenium.GridLauncher
根据 GridRole
类 - Selenium服务器可以运行以下角色之一:
NOT_GRID
[如果省略-role选项,则服务器独立运行而不是网格的一部分] >HUB
[作为Selenium网格的中心]- 醇>
NODE
[作为Selenium网格的节点]
D:\> java -jar selenium-server-standalone-*.jar -host 127.0.0.1 -port 4444
NOT GRID
RC
强> (Selenium interface)
的 - IP:Port/selenium-server
强>:Selenium远程控制(RC)要求在执行测试脚本之前启动服务器。 RC服务器注入 Selenium core(JavaScript)进入浏览器。核心(守护程序进程)通过测试脚本从服务器接收命令,并在浏览器中执行它们,然后生成到程序中。但无法处理移动鼠标光标和移动执行。
Java客户端驱动程序:
客户端 - 将浏览器配置为使用Selenium Server作为HTTP代理,并通过"/selenium-server/RemoteRunner.html?sessionId=1234"
将浏览器命令传递给服务器,客户端可以通过HTTP将驱动程序命令请求发送到selenium服务器,如下所示:
代码&请求:RC Server持续运行。我们创建一个守护进程并从中与浏览器进行通信。
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]必须向HUB发送请求,以便通过此网址注册 - 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值-Dproperty = value -D {{3} } = chrome(如果value是一个包含空格的字符串,则必须将该字符串括在双引号中)
使用 JSON配置文件driverAddress 进行节点注册。
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 在开始执行之前不需要任何服务器启动。您可以看到registerNode.json
的行为与普通的Java库一样:它完全是独立的,您在使用它之前不需要记住启动任何其他进程或运行任何安装程序
WebDriver driver = new FirefoxDriver();
@see
答案 2 :(得分:6)
java -jar selenium-server-standalone-2.44.0.jar -port port_no
答案 3 :(得分:2)
我想在@Saifur回答中添加更多网络驱动程序。 https://stackoverflow.com/a/28854250/4587961
java -Dwebdriver.ie.driver=./IEDriverServer32.exe -Dwebdriver.chrome.driver=./chromedriver.exe -jar selenium.jar -port 4545
注意,对于IE,您运行32位版本的驱动程序。它有效。我创建了一个bat文件并将其放在selenium文件夹中,我也放置了驱动程序。
答案 4 :(得分:0)
首先应该指定驱动程序部分,然后是硒罐:
java -Dwebdriver.chrome.driver =。/ chromedriver -jar selenium-server-standalone-3.141.59.jar
这适用于Ubuntu 18.04