Selenium 4.0 Alpha更新实践

最是人间留不住,朱颜辞镜花辞树。这篇文章主要讲述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 + ") ; ");

//创建驱动driveWebDriver 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.0 Alpha更新实践】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 = https://www.songbingjia.com/android/((FirefoxDriver) driver).getFullPageScreenshotAs(OutputType.FILE); ??
可能会有一些更有趣的功能和改进,因此继续探索!

Selenium 4.0 Alpha更新实践

文章图片


    推荐阅读