自动化测试框架 3,Selenium RemoteWebDriver (使用远程浏览器测试)

RemoteWebDriver可以理解为,环境部署在Machine A,然后执行Machine B的浏览器上,远程的优点是:

  1. 可以更方便的进行跨平台、浏览器的测试
  2. 避免环境污染,使用一个纯净的机器
    这里,我们remote browser 使用的是docker 搭建的server,提供各种remote browser。

废话不多说,直接Part 1,配置maven;Part 2,code demo

Part 1,配置maven



org.seleniumhq.selenium
selenium-firefox-driver
3.4.0


org.seleniumhq.selenium
selenium-chrome-driver
3.4.0


org.seleniumhq.selenium
selenium-ie-driver
3.4.0


org.seleniumhq.selenium
selenium-support
3.4.0


org.seleniumhq.selenium
selenium-java
3.4.0

强调:!!!!!!!!!!!!!!!!!!!!!!!!
使用version 3.4.0以上的版本吧,一开始使用的是2,47的版本,那叫一个惨不忍睹,就是不过。

WebDriver driver = new RemoteWebDriver(URL remoteAddress, Capabilities desiredCapabilities)

自动化测试框架 3,Selenium RemoteWebDriver (使用远程浏览器测试)_第1张图片
image.png

这里要看到 sessionId有值,才算可以连接成功。
前方高能,有大坑:

Exception:
java.lang.NoSuchMethodError: com.google.common.collect.ImmutableSet.toImmutableSet()Ljava/util/stream/Collector;
at org.openqa.selenium.remote.ProtocolHandshake.streamW3CProtocolParameters(ProtocolHandshake.java:284)
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:149)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:142)
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:82)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:637)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:250)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:236)
at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:137)
当看到这一部分call stack,恭喜你,请在pom中加入:

com.google.guava
guava
21.0

Part 2,code demo

    DesiredCapabilities ffDesiredcap= new DesiredCapabilities("firefox", "57.0", Platform.LINUX);
    WebDriver driver = new RemoteWebDriver(new URL("http://" + "remoteip" + ":4444/wd/hub"), ffDesiredcap);
    driver.manage().window().maximize();

就这么一小段,三个参数:"firefox", "57.0","remoteip" ;浏览器类型,浏览器版本,远程ip

你可能感兴趣的:(自动化测试框架 3,Selenium RemoteWebDriver (使用远程浏览器测试))