Selenium 4.0 Alpha更新实践

Posted FunTester

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Selenium 4.0 Alpha更新实践相关的知识,希望对你有一定的参考价值。

上期讲到了Selenium 4.0 Alpha更新日志,这次来实践一下更新内容。


  • DevTools操作更加方便。
  • 窗口管理不在依赖一个driver
  • 相对定位器功能丰富
  • 补充全屏快照的功能

ChromiumDriver和DevTools:

在Selenium 3中,EdgeDriver和ChromeDriver具有从RemoteWebDriver类继承的自己的实现。在Selenium 4中,Chromedriver和EdgeDriver继承自ChromiumDriver。ChromiumDriver类具有预定义的方法来访问开发工具。考虑下面的代码片段

     //创建驱动drive
WebDriver driver = new ChromeDriver();
Connection connection = null;
DevTools devtools = new DevTools(connection);
devtools.createSession();
String message = "chrome 浏览器测试Demo!";
driver.get("https:www.bing.cn");
//JS打印信息
javascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("console.log(" + message + " ) ;");
//创建驱动drive        WebDriver driver = new ChromeDriver();        Connection connection = null;        DevTools devtools = new DevTools(connection);        devtools.createSession();        String message = "chrome 浏览器测试Demo!";        driver.get("https:www.bing.cn");        //JS打印信息        JavascriptExecutor js = (JavascriptExecutor) driver;        js.executeScript("console.log(" + message + "  ) ;");

上面的代码创建到给定URL的会话,并执行javascript打印消息。DevTools是一个类,具有用于获取开发人员选项的方法的类。

DevTools还可以用于性能评估并获取页面加载时间。

更好的窗口和标签管理

Selenium 4现在具有可以同时在两个不同的窗口上工作的功能。当我们要导航到新窗口(或选项卡)并在那里打开另一个URL并执行某些操作时,此功能特别有用。

  WebDriver window2 = driver.switchTo().newWindow(WindowType.TAB);
window2.get("url");
WebDriver window1 = driver.switchTo().newWindow(WindowType.WINDOW);
window1.get("url");
WebDriver window2 = driver.switchTo().newWindow(WindowType.TAB);        window2.get("url");        WebDriver window1 = driver.switchTo().newWindow(WindowType.WINDOW);        window1.get("url");

​newWindow()​​方法根据其参数中指定的WindowType打开一个新窗口或选项卡。

相对定位

在Selenium 4 alpha版本中,我们还可以获得相对于任何其他定位器的定位器。

toLeftOf():位于指定元素左侧的元素。toRightOf():位于指定元素右侧的元素。above():相对于指定元素位于上方的元素。below():相对于指定元素位于下方的元素。near():元素距离指定元素最多50个像素。像素值可以修改。

全屏快照

现在,我们可以在Firefox中使用​​getFullPageScreenshotAs()​​方法获取完整的屏幕截图。但是,我们无需将其类型换为​​TakesScreenshot​​界面,而是需要将其类型转换为FirefoxDriver实例。​​File src = ((FirefoxDriver) driver).getFullPageScreenshotAs(OutputType.FILE);​

可能会有一些更有趣的功能和改进,因此继续探索!



Selenium

以上是关于Selenium 4.0 Alpha更新实践的主要内容,如果未能解决你的问题,请参考以下文章

Django 4.0 alpha 1 发布

软工网络15团队作业4——Alpha阶段敏捷冲刺4.0

一文看懂OpenCV 4.0 所有新特性

如何在bash中对语义版本进行排序?

软工实践Alpha冲刺(3/6)

selenium3.4.0-java,启动谷歌浏览器和火狐浏览器