Selenium Grid和IE 各种填坑

使用selenium grid的步骤

1、确保hub和node都安装并且配置好了java jdk.

2、在hub上运行以下命令。

java -jar C:\Software\selenium\selenium-server-standalone-2.40.0.jar -role hub -port 4444

其中,-port 4444是可选的,不指定的话,默认是4444端口

3、在用作Node的电脑上运行以下命令

java -Dwebdriver.chrome.driver="C:\webdrivers\chromedriver.exe" -Dwebdriver.ie.driver="C:\webdrivers\IEDriverServer.exe" -Dwebdriver.gecko.driver="C:\webdrivers\geckodriver.exe" -jar C:\selenium-server\selenium-server-standalone-3.141.59.jar -role node -hub http://192.168.60.66:4444/grid/register -host 192.168.60.61 -port 5566

一口气把各种webdriver的地址都加进去了

问题就来了。

因为我的node电脑有两个物理网卡和两个虚拟网卡,HUB也有两个网卡,一个连外网,一个连内网。

两个物理网卡当中的一张通过网线与Hub相连,并且确定是互联互通的,但是另外一张物理网卡是WIFI,虽然WIFI与HUB在同一路由下,但WIFI与HUB的有线网卡并不是同一个局域网网段。这就导致后来执行测试脚本时各种报错。

后来我重新运行Java -jar命令,并指定了Node的IP地址和端口,如上是完整命令,下面是重点选项。

-host 192.168.60.61 -port 5566

经过这些坑,两台电脑的selenium是能够联通了。

但是有遇到了IE保护模式和ZOOM LEVEL这个破事儿,这个问题,需要改java代码。

改好的java代码在下面。

package com.qa.data;
import java.net.MalformedURLException;
import java.net.URL;

import org.openqa.selenium.By;
import org.openqa.selenium.Platform;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testng.annotations.Test;



public class ExcelData {

    @SuppressWarnings("deprecation")
    @Test
    public void openBrowser() throws MalformedURLException, InterruptedException {

        DesiredCapabilities cap=DesiredCapabilities.internetExplorer();
        cap.setBrowserName("internet explorer");

//以下三句,很多网上的文章都没加,我KAO,不加这三句它们的IE是怎么跑起来的? cap.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION,
true); cap.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true); cap.setCapability("ignoreZoomSetting", true);//忽略IE浏览器的ZOOM LEVEL,不加这句会报错。每次selenium打开ie都是他妈的150%放大倍数,狗日的IE+SELENIUM cap.setPlatform(Platform.WINDOWS); URL url=new URL("http://192.168.60.61:5566/wd/hub"); WebDriver driver=new RemoteWebDriver (url,cap); driver.get("http://www.baidu.com"); driver.manage().window().maximize(); String t=driver.getTitle(); System.out.println(t); Thread.sleep(3000); driver.findElement(By.id("kw")).sendKeys("天气"); Thread.sleep(1000); driver.findElement(By.id("su")).click(); Thread.sleep(3000); driver.quit(); } }

关于填坑的截图,坑爹啊。

第二章

第二章

第二张图

猜你喜欢

转载自www.cnblogs.com/majestyking/p/10414749.html
今日推荐