如何运行独立Selenium服务器?

7kqas0il  于 2022-11-24  发布在  其他
关注(0)|答案(6)|浏览(202)

我正在尝试运行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

我应该如何启动服务器?
如何设置要侦听非默认端口?
这两个帖子:12-语法上有矛盾。我想。

bmp9r5qi

bmp9r5qi1#

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
cl25kdpy

cl25kdpy2#

执行独立的Selenium Server

  • 表单Jar Source主类别为 * org.openqa.grid.selenium.GridLauncher

根据**GridRole类- Selenium服务器可以以下列角色之一运行:
1.
NOT_GRID[如果省略-role选项,服务器将独立运行,而不是网格的一部分]
1.
HUB[作为Selenium网格的中心]
1.
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服务器用作HTTP代理,并通过"/selenium-server/RemoteRunner.html?sessionId=1234"将浏览器命令传递给服务器,客户端可以通过HTTP将驱动程序命令请求发送给Selenium服务器,如下所示:*

  • 代码请求(& R):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

*RCWebDriverinterface)- 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:集线器是一个中心点,用于在多个节点机上分发测试,这些节点机已注册到集线器以并行执行。*

java -jar selenium-server-standalone-2.53.0.jar -host 127.0.0.1 -port 4454 -role hub -log "D:\\HUB_Log.txt"

节点*[RC]必须通过此URL -IP:Port//grid/register向HUB发布一个注册请求。*

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=具有System Property值的WINDOWS命令行参数-Dproperty=值-D chrome = driverAddress(如果值是包含空格的字符串,则必须用双引号将字符串括起来)*

使用**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();

@见

uqcuzwp8

uqcuzwp83#

java -jar selenium-server-standalone-2.44.0.jar -port port_no
zvms9eto

zvms9eto4#

我想向@Saifur answer添加更多Web驱动程序。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文件夹内,我也把驱动程序放在那里。

kt06eoxx

kt06eoxx5#

首先应指定驱动程序部分,然后指定 selenium 罐:
浏览器驱动程序=./chromedriver -jar selenium-服务器-单机版-3.141.59.jar
这在Ubuntu 18.04上是有效的

kulphzqa

kulphzqa6#

如果您使用的是Selenium〉= 4.6,请使用

java -jar selenium-server-<version>.jar standalone

有关详细说明,请参阅本页
https://www.selenium.dev/documentation/grid/getting_started/

相关问题