如何 运行 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主-Classorg.openqa.grid.selenium.GridLauncher

根据 GridRole class - Selenium 服务器可以 运行 担任以下角色之一:

  1. NOT_GRID [If -role option is omitted the server runs standalone not being a part of a grid]>
  2. HUB [as a hub of a Selenium grid]
  3. NODE [as a node of a Selenium grid]
D:\> java -jar selenium-server-standalone-*.jar -host 127.0.0.1 -port 4444

不是网格

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(WebDriverinterface)- IP:Port/wd/hub/static/resource/hub.html:

RWD Code & Requests:

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