独立运行Selenium Server:
Form Jar Source Main-Class 是 org.openqa.grid.selenium.GridLauncher
根据 GridRole 类 - Selenium 服务器可以以下列角色之一运行:
-
NOT_GRID [如果省略 -role 选项,则服务器独立运行而不是网格的一部分]>
-
HUB [作为 Selenium 网格的枢纽]
-
NODE [作为 Selenium 网格的一个节点]
D:\> java -jar selenium-server-standalone-*.jar -host 127.0.0.1 -port 4444
非网格
Selenium 远程控制 (RC) 需要在执行测试脚本之前启动服务器。 RC 服务器注入 Selenium 核心 (JavaScript) 进入浏览器。核心(守护进程)通过您的测试脚本从服务器接收命令并在浏览器中执行它们,然后结果到您的程序。但无法处理移动鼠标光标和移动执行。
Java 客户端驱动程序:
客户端——将浏览器配置为使用 Selenium 服务器作为 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(WebDriverinterface)- 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] 必须通过此 URL 向 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: browser Instance INFO: browserName=chrome, version=53.0, maxinstance=1, platform=WINDOWS 命令行参数,System Property 值 -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