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


  • 创建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

Selenium脚本编写技巧和窍门相关推荐

  1. selenium编写脚本_Selenium脚本编写技巧和窍门

    selenium编写脚本 如果您刚刚开始学习Selenium,则以下技巧和窍门将成为您的救星. 这些技巧和窍门具有您可能会忘记的所有基本知识,将帮助您记住所有这些. 您只需浏览一次,几秒钟后您便会了解 ...

  2. Linux编写脚本nsum求和,详解Linux Shell脚本编写技巧,附实例说明

    原标题:详解Linux Shell脚本编写技巧,附实例说明 Linux Shell是一个很难的知识板块.虽然大家都认真学,基本的语法很都掌握,但有需求时,很难直接上手编程,要么写了很久,要么写不好!对 ...

  3. 软件测试--selenium脚本编写注意点(一)

    在通过python+selenium编写ui自动化脚本的时候,我遇到过很多需要注意的点,今天分享给大家一下. 一.睡眠时间 1. 强制等待时间 sleep() 必须导入time包后才可以使用,强制等待 ...

  4. selenium脚本编写的注意点,那些我踩过的坑

    在通过python+selenium编写ui自动化脚本的时候,我遇到过很多需要注意的点,今天分享给大家一下. 一.睡眠时间 1. 强制等待时间 sleep() 必须导入time包后才可以使用,强制等待 ...

  5. 软件测试--selenium脚本编写注意点(二)

    一.定位iframe 1.什么是iframe iframe,又叫浮动帧标记,是内嵌的网页元素,可以将一个html文件嵌入到另一个html文件中显示 2.iframe操作的方法 switch_to_if ...

  6. UIautomator2:APP自动化测试方法与小技巧记录(文末附实用APP测试脚本编写模板)

    uiautomator2是一个python的用来自动化操作手机的库,可用于APP自动化测试.就笔者的使用体验,比appuim更稳定.易用.本文以大家最常用的APP:微信为例子,记录uiautomato ...

  7. X86逆向教程15:OD脚本的编写技巧

    本章节我们将学习OD脚本的使用与编写技巧,脚本有啥用呢?脚本的用处非常的大,比如我们要对按钮事件进行批量下断点,此时使用自动化脚本将大大减小我们的工作量,再比如有些比较简单的压缩壳需要脱壳,此时我们也 ...

  8. 基于selenium的自动化测试脚本编写-python

    浏览器操作 1 启动浏览器并打开网页 2 拖拽操作 3 弹窗处理 4 后退前进关闭 5 cookies操作 异常处理 1 等待 11 sleep函数 12 隐示例等待 13 使用javascript ...

  9. 四个步骤教你入门Selenium+python脚本编写

    前提:安装了谷歌浏览器.python3和pyCharm编译器 第一步:下载谷歌浏览器插件 此时顺便下载谷歌浏览器的Selenium扩展程序插件,即Selenium IDE, 这个为了以后要查找web端 ...

最新文章

  1. 应用开发也去中心化?基于BCH的筹款平台Akari-Pages与Lighthouse正面交锋
  2. Android图片放对应的drawable文件夹
  3. linux复制和剪切命令,Linux命令 复制粘贴剪切
  4. 当我们在谈论HTTP缓存时我们在谈论什么
  5. win32下Socket编程(1)
  6. 通过Dapr实现一个简单的基于.net的微服务电商系统(十九)——分布式事务之Saga模式...
  7. text 两端对齐 小程序_小程序实现文字两端对齐
  8. r语言折线图_R语言做多变量可视化分析?
  9. zlib-1.2.11手册
  10. python 返回函数
  11. matlab论坛真不活跃,MATLAB中文论坛常见问题归纳
  12. 程序员面试揭秘之求职渠道
  13. redis JAVA hmset_Spring boot 连接Redis实现HMSET操作
  14. python输入的字符串转换为对应的数字类型_Psychopy | 第1期:数据类型及运算符
  15. 一种数字全息散斑干涉测量仿真模拟系统
  16. Linux (中标麒麟)离线安装 Python
  17. 利用Python爬取拉勾网招聘信息
  18. matlab2018a调用python
  19. 2.命名空间实现机制
  20. 计量经济学计算机处理题,计量经济学切第3章计算机习题.docx

热门文章

  1. vijos1197-费解的开关【递推,枚举,位运算】
  2. 【2018.4.7】模拟赛之五-ssl2386 序列【dp】
  3. 【倍增】【线段树】雨林跳跃(luogu 7599[APIO 2021 T2])
  4. 【状压DP】剑之修炼(jzoj 2130)
  5. CVPR19 基于图卷积网络的多标签图像识别模型 论文笔记
  6. Java 并发总结——进程与线程
  7. Sentinel(十)之系统自适应限流
  8. 集合框架 Queue---BlockingQueue详解
  9. 使用Java 8 Stream像操作SQL一样处理数据(上)
  10. SpringAOP的SchemaBase方式