运行独立硒服务器:
表单 Jar 源 主类是 org.openqa.grid.selenium.GridLauncher
根据GridRole
类 - Selenium服务器可以在以下角色之一中运行:
-
NOT_GRID
[如果省略了 -role 选项,则服务器独立运行,而不是网格的一部分]>
-
HUB
[作为硒网格的枢纽]
-
节点
[作为硒网格的节点]
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
-
RC
(WebDriver
- IP:Port/wd/hub/static/resource/hub.html
:interface)
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();
@see