如何运行硒服务器独立?

2022-09-01 18:21:41

我正在尝试运行硒服务器,并得到错误:

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 - 关于语法的矛盾。我认为。


答案 1
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

答案 2

运行独立硒服务器

表单 Jar 源 主类 org.openqa.grid.selenium.GridLauncher

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

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

非网格

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

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

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

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 网格 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 发布请求才能通过此 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

作为网格节点运行:浏览器 实例信息:browserName=chrome,version=53.0,maxinstance=1,platform=WINDOWS 命令行参数和系统属性值 -Dproperty=value -Dchrome=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

@see


推荐