如何运行selenium-server-standalone?

时间:2015-03-04 11:45:53

标签: java selenium jar server

我正在尝试运行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 - 与语法相矛盾。我想。

5 个答案:

答案 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服务器可以运行以下角色之一:

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

NOT GRID

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

RWD代码& 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]必须向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();

WebDriver

@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