如何运行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 

我该如何启动服务器?

如何设置要监听的非默认端口?

这两个post: 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 

运行独立Selenium服务器 :

表单Jar Source Main-Class org.openqa.grid.selenium.GridLauncher

根据GridRole类 – Selenium服务器可以运行以下角色之一:

  1. NOT_GRID [如果省略 NOT_GRID 选项,则服务器独立运行而不是网格的一部分] >
  2. HUB [作为Selenium网格的中心]
  3. NODE [作为Selenium网格的节点]
 D:\> java -jar selenium-server-standalone-*.jar -host 127.0.0.1 -port 4444 

不是网格

  • RC (Selenium interface) - IP:Port/selenium-server

Selenium远程控制( RC )要求在执行测试脚本之前启动服务器。 RC服务器将Selenium核心(JavaScript)注入浏览器。 核心(守护程序进程)通过测试脚本从服务器接收命令,并在浏览器中执行它们,然后生成程序。 但无法处理移动鼠标光标和移动执行。

Java客户端驱动程序: 客户端 – 将浏览器配置为使用Selenium Server作为HTTP代理,并通过"/selenium-server/RemoteRunner.html?sessionId=1234"将浏览器命令传递给服务器,客户端可以向selenium服务器发送驱动程序命令请求 HTTP如下:

代码和请求: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 
  • RCWebDriver interface) - IP:Port/wd/hub/static/resource/hub.html

RWD代码和请求

 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'] } 

网格 :[ - IP:Port/grid/console ]

HUB Grid HUB Running as a standalone server:集线器是一个中心点,它在几个节点机器上分配测试,这些机器注册到并行执行。

 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发送请求,以便通过此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具有系统属性值的命令行参数-Dproperty = value -D chrome = driverAddress (如果value是包含空格的字符串,你必须用双引号将字符串括起来)

使用JSON配置文件registerNode.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(); 

Selenium Server

@看到

  • Selenium使用Java:启动Hub服务器并使用Hub注册节点
  • GitHub Wiki
 java -jar selenium-server-standalone-2.44.0.jar -port port_no 

我想在@Saifur的答案中添加更多的webdrivers。 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文件夹中,我也放置了驱动程序。