Selenium脚本编写技巧和窍门

如果您刚刚开始学习硒,则以下技巧和窍门将成为您的救星。 这些技巧和窍门具有您可能会忘记的所有基本知识,将帮助您记住所有这些。 您只需浏览一下它们,几秒钟后您就会了解所有内容。 让我们一一看一下所有的技巧和窍门。

  • 创建Webdriver实例的最佳方法

您可以使测试通用。 第一步是通过传递配置文件中的值来初始化浏览器。 您可以将一个键作为浏览器,并将值作为Chrome,Firefox或IE。 然后,您可以根据传递给浏览器的值来初始化浏览器。 让我们看看将要涉及的代码。在此处添加段落文本。

public static WebDriver getBrowser(String browserName)
{
If(driver == null)
{
if(browserName.equals(“firefox”))
{
driver = new FirefoxDriver();
}
else if(browserName.equals(“Chrome”))
{
driver=new ChromeDriver();
}
else if(browserName.contains(“IE”))
{
driver=new InternetExplorerDriver();
}
}
return driver;
}
  • 检查元素是否存在的最佳方法

如果必须检查Web应用程序中是否存在某个元素,则可以通过获取Web元素的大小然后检查它是否大于零来轻松地做到这一点。

布尔值isElementExists = driver.findElements(By.xpath(“”))。size()> 0

  • 如何等待页面完全加载?

有时,页面需要花费一些时间来加载,因此您必须等待一段时间才能完全加载页面。 为此,您必须首先检查它是否正确装入,然后可以对其进行任何其他操作。 您可以使用Javascriptexecutor检查页面是否完全加载。

wait.until(new Predicate < WebDriver > () {@Overridepublic Boolean waitPageLoaded(WebDriver driver) {return ((JavascriptExecutor) driver).executeScript("return document.readyState").equals("complete");}});
  • 如何使用Selenium Webdriver

有时,在执行过程中截取屏幕截图以了解出了什么问题非常重要。 该死的说要用硒来做。 您可以拥有Selenium驱动程序,然后将其强制转换为“截屏”界面。 创建它的一个实例,然后使用它来获取屏幕截图。 您可以使用工具包方法.getScreenshotAs,然后可以指定期望的屏幕截图格式。

//将屏幕快照存储在当前项目目录中

字符串screenShot = System.getProperty(“ user.dir”)+“ \\ screenshottest.png”;

//广播Webdriver来截取屏幕截图

文件srcFile =(((TakesScreenshot)驱动程序).getScreenshotAs(OutputType.FILE);

//保存屏幕截图

FileUtils.copyFile(srcFile,new File(screenShot));

  • 如何在Selenium Webdriver中 获取Web元素HTML源

Selenium WebDriver为您提供了一种名为getAttribute的方法,该方法将允许您获取Web元素的内部HTML。 您可以通过首先获取元素来实现。 之后,您可以使用getAttribute获取Web元素的innerHTML。

字符串html = element.getAttribute(“ innerHTML”);

  • 如何使用Select Class选择下拉选项?

在硒中,如果遇到任何下拉菜单,则可以使用选择类在其中选择任何选项。 您可以通过多种方式选择选项。 其中一些方法包括按文本,索引和值进行选择。

Select drp= new Select(Driver.findElement(By.xpath(“”));drp.deselectAll();drp.selectByVisibleText("selectLabel");
  • 如何在 Webdriver中 刷新网页

如果要刷新页面,则可以使用Selenium Web驱动程序的navigation()方法。 然后,您可以使用refresh()方法实际刷新页面,以便从头开始初始化所有元素。

driver.navigate()。refresh();

  • 如何使用Selenium Webdriver 切换到新选项卡

您可以使用Selenium Webdriver轻松切换到新选项卡。 首先要记住的是使用.getWindowHandles(),然后可以切换到具有所有窗口句柄的数组列表的第一个索引。

ArrayList<String> tabs = new ArrayList<String> (driver.getWindowHandles());driver.switchTo().window(tabs.get(0));
  • 如何在 Webdriver中 设置驱动程序可执行路径

对于chrome和浏览器,您必须查看驱动程序可执行文件的路径。 要设置路径,您必须在硒中使用System.setProperty方法。 让我们看看它的外观。

File ieDriverPath = new File("path//iexploredriver.exe");System.setProperty("webdriver.ie.driver", ieDriverPath.getAbsolutePath());WebDriver driver = new InternetExplorerDriver();
  • 如何切换到新的弹出窗口?

如果要切换到打开的特定窗口,则可以先getAllWindowHandles(),然后使用driver.switchTo()方法切换。

/ Get the current window handle.String hBefore = driver.getWindowHandle();// action which opens lot of windows.// Switch to new windows.for(String hNew: driver.getWindowHandles()){driver.switchTo().window(hNew);}// Close all new windows.driver.close();// Switch back to first window.driver.switchTo().window(hBefore);

但是如果万一,您想专门切换到特定窗口。 您可以获取一个Web元素,并在特定窗口中查看它的可见性。 如果存在,则可以切换到它。

/ Get the current window handle.String hBefore = driver.getWindowHandle();// Click to open new windows.// Switch to window which has a webelement attached to itfor(String hNew: driver.getWindowHandles()){If(driver.findElements(By.xpath(“”)).size()>0){driver.switchTo().window(hNew);}}// Close all new windows.driver.close();// Switch back to first window.driver.switchTo().window(hBefore);
  • 如何单击一个不可见的复选框?

在很多情况下,您要单击的复选框不可见,很遗憾,您将无法单击该复选框。 您必须先启用它,然后才能实际单击它。 如果您不启用它,则会出现异常,例如“元素当前不可见,因此可能无法与之交互”。

Java脚本执行器可用于启用它,以便硒可以单击它。 代码段如下:

((JavascriptExecutor)driver).executeScript("arguments[0].checked = true;", checkbox);
  • 如何在Selenium Webdriver中进行鼠标悬停动作?

如果要将鼠标悬停在Web元素上,则可以使用Actions()类进行处理。 您可以依次使用函数moveToElemenet(),build()和perform()在Web元素上执行鼠标悬停操作。

Actions action = new Actions(driver);WebElement item = driver.findElement(By.xpath(""));action.moveToElement(item).moveToElement(driver.findElement(By.xpath("")) ).click().build().perform();
  • 如何在运行测试脚本之前删除Cookies?

有时在运行测试脚本之前清除所有cookie是非常重要的。 您可以使用driver.manage()的方法DeleteAllCookies函数。

代码片段如下:

this.driver.Manage()。Cookies.DeleteAllCookies();

另外,如果您有一个具有特定名称的cookie,则可以使用以下方法将其删除:manage()类的DeleteCookiesNames。

this.driver.Manage()。Cookies.DeleteCookieNamed(“ CookieName”);

  • 如何在测试脚本中最大化窗口?

有时,您需要以全窗口大小和分辨率测试脚本。 您可以通过使用驱动程序实例的manage()方法轻松完成此操作。 然后,您可以使用window()方法,然后使用maximum()方法将窗口放大到最大大小。

程式码片段如下:

public void MaximizeWindow(){this.driver.get(“");this.driver.Manage().Window().Maximize();}

因此,您可以遵循一些重要的技巧和提示来运行硒测试。 如果您牢记这些,则可以在“自动化测试”中编写脚本时解决大部分问题。 因此,使用它们可以节省您的时间。 祝一切顺利!!

翻译自: https://www.javacodegeeks.com/2019/09/selenium-scripting-tips-tricks.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/341813.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

光纤收发器在使用过程中有哪些需要注意的事项?

光纤收发器的种类非常丰富&#xff0c;而在实际使用中大多是按照光纤接头不同进行区分&#xff0c;SC接头光纤收发器和FC/ST接头光纤收发器。今天&#xff0c;飞畅科技的小编就带大家来详细了解下光纤收发器在使用过程中需要注意的事项有哪些&#xff1f;一起来看看吧&#xff…

[渝粤教育] 南通大学 电路分析 参考 资料

教育 -电路分析-章节资料考试资料-南通大学【】 随堂测验&#xff1a;关联方向和非关联方向判断 1、【填空题】图中所示的电压源电压、电流i参考方向为 方向&#xff0c;电流源电压u、电流i参考方向为 方向。 A、 参考资料【 】 随堂测验&#xff1a;电源功率计算及判断 1、【填…

光纤收发器发展趋势

现如今&#xff0c;随着互联网的高速发展&#xff0c;以太网的局域发展已经无法适应其发展了&#xff0c;因此出现了光纤收发器这种设备&#xff0c;来进行长距离的光信号输送&#xff0c;这样可以扩大光网的使用范围&#xff0c;使更多的人能够受到网络的优惠和速度。接下来飞…

[渝粤教育] 南通职业大学 混合动力汽车构造与检修 参考 资料

教育 -混合动力汽车构造与检修-章节资料考试资料-南通职业大学【】 单元测验1 1、【单选题】混合动力汽车的英文简称是&#xff08;&#xff09; A、EV B、FCV C、HEV D、HHV 参考资料【 】 2、【单选题】本课程主要讲的混合动力汽车是 A、太阳能燃油 B、燃油氢燃料 C、燃油动力…

[渝粤教育] 南阳理工学院 大学计算机基础 参考 资料

教育 -大学计算机基础-章节资料考试资料-南阳理工学院【】 第一章单元测验 1、【单选题】大学计算机中所要学习的计算思维是指( )。 A、计算机相关的知识 B、算法与设计技巧 C、知识与技巧的结合 D、蕴含在计算科学知识背后的具有贯通性和联想性的内容 参考资料【 】 2、【单选…

光纤收发器和协议转换器之间有哪些区别?

在通信网络领域&#xff0c;我们经常会用到光纤收发器和协议转换器&#xff0c;但对此不是很了解的朋友&#xff0c;往往可能会将二者搞混淆。那么&#xff0c;关于光纤收发器与协议转换器之间有什么区别呢&#xff1f;接下来就跟随杭州飞畅的小编一起来看看吧&#xff01; 光…

[渝粤教育] 周口师范学院 大学计算机基础 参考 资料

教育 -大学计算机基础-章节资料考试资料-周口师范学院【】 随堂测验 1、【单选题】计算机数据的一个基本特点是&#xff08; &#xff09;。 A、只能表示计算所用的数值 B、以各种形式存储在内存中 C、都是以二进制形式存储在存储器上 D、所有的数据按存储器类型组织 参考资料【…

长期支持对OpenJDK意味着什么?

Bruno Borges最近在推特上发布了一个有关OpenJDK的长期支持&#xff08;LTS&#xff09;的问题&#xff0c;这表明对它的真正含义还有一些困惑。 在此博客文章中&#xff0c;我将解释不同部分如何组合在一起。 那么……谁说或者说“ #OpenJDK 11”是LTS&#xff1f; 我觉得关…

光纤收发器结构介绍和故障解决

光纤收发器是一款高集成度的设备&#xff0c;最多可集成14台光纤收发器并进行统一供电&#xff0c;结构简单&#xff0c;便于管理和维护。光纤收发器包括百兆/千兆&#xff0c;单纤/双纤、单模/多模等多种规格。光纤收发器支持每台光纤收发器的热插拔操作&#xff0c;使用非常灵…

[渝粤教育] 四川信息职业技术学院 高频电子技术 参考 资料

教育 -高频电子技术-章节资料考试资料-四川信息职业技术学院【】 无线通信系统 1、【单选题】下列表述正确的是&#xff08; &#xff09; A、低频信号可直接从天线上有效地辐射 B、低频信号必须装载到高频信号上才能有效地辐射 C、低频信号和高频信号都不能从天线上有效地辐射…

[渝粤教育] 四川农业大学 理论力学 参考 资料

教育 -理论力学-章节资料考试资料-四川农业大学【】 第2讲 单元测试 1、【单选题】以下说法中错误的是( ) A、理论力学是研究物体机械运动一般规律的科学。 B、理论力学与物理中力学部分的主要区别在于理论力学的研究对象和研究方法更加面向工程实际。 C、刚体是理论力学中的重…

[渝粤教育] 四川大学 工程水文学 参考 资料

教育 -工程水文学-章节资料考试资料-四川大学【】 绪论问答题 第一章测试 1、【单选题】水文现象的发生 A、完全是偶然性的 B、完全是必然性的 C、完全是随机性的 D、既有必然性也有随机性 参考资料【 】 2、【单选题】水文分析与计算&#xff0c;是预计水文变量在[ ]的概率分布…

光纤收发器怎么连接?光纤收发器连接方式解析

光纤收发器将以太网中的连接介质转换为光纤&#xff0c;由于光纤的低损耗、高抗电磁干扰性&#xff0c;从而使网络传输距离从200米扩展到2公里甚至几十公里&#xff0c;乃至于上百公里的同时&#xff0c;也使数据通讯质量有了较大提高。光纤收发器使服务器、中继器、集线器、终…

[渝粤教育] 四川大学 药用植物学 参考 资料

教育 -药用植物学-章节资料考试资料-四川大学【】 正常根的形态 1、【判断题】根由于生长在地下&#xff0c;细胞中不含叶绿体&#xff0c;有节和节间之分&#xff0c;一般不生芽、叶和花。 A、正确 B、错误 参考资料【 】 2、【判断题】药用植物百合、大蒜等多数单子叶植物的根…

java 开发人员工具_Java开发人员应该知道的7种新工具

java 开发人员工具通过快速浏览一些最新的&#xff0c;创新的工具&#xff0c;准备好锁定和加载。 万一您错过了它&#xff0c;RebelLabs最近发布了Java工具和技术前景的全球调查结果 。 除了著名的工具和成熟的工具之外&#xff0c;市场还充斥着鲜为人知的新鲜工具和框架。 在…

光纤收发器如何选择?

首先&#xff0c;我们来具体了解下什么是光纤收发器&#xff0c;光纤收发器&#xff0c;是一种将短距离的双绞线电信号和长距离的光信号进行互换的以太网传输媒体转换单元&#xff0c;在很多地方也被称之为光电转换器。接下来就由杭州飞畅的小编来给大家介绍下该如何选购适合的…

[渝粤教育] 天水师范学院 地球科学概论 参考 资料

教育 -地球科学概论-章节资料考试资料-天水师范学院【】 0.5 单元测验 1、【单选题】天水师范学院的英文是&#xff08; &#xff09; A、Tianshui Normal University B、Normal University of Tianshui C、Tianshui University of Normal D、University of Tianshui Normal 参…

[渝粤教育] 天水师范学院 陶质文物保护修复 参考 资料

教育 -陶质文物保护修复-章节资料考试资料-天水师范学院【】 第一章测验 1、【单选题】2012-2016年全国第一次可移动文物普查结果显示&#xff0c;截至2016年底我国需要保护修复的可移动文物比例是 A、59.97% B、38.93% C、32.14% D、50.28% 参考资料【 】 2、【单选题】最先开…

光纤收发器具体是怎么使用的?光纤收发器使用方法详解!

在之前我们介绍了光纤收发器的特点、优势以及连接方式&#xff0c;相信看过的朋友对此都有了一定的了解。可能会有人问光纤收发器的具体使用方法&#xff0c;今天&#xff0c;杭州飞畅科技的小编就带大家来详细了解下光纤收发器具体是怎么使用的&#xff0c;接下来我们就一起来…

Java中的适配器设计模式

适配器设计模式是一种结构设计模式 &#xff0c;可以帮助我们连接到通过不同接口公开相似功能的旧版或第三方代码。 适配器的现实世界是我们用来将USB电缆连接到以太网端口的类比。 在设计面向对象的应用程序时&#xff0c;当我们的客户希望使用特定类型的对象并且我们有一个…