PowerShell Web 测试框架 Selenium 9


什么是Selenium

Selenium是一款著名的web应用程序测试工具,它能通过在浏览器中模拟用户的动作来完成测试,其api支持java,c#,python,ruby,php,perl,javascript这些主流编程语言和脚本语言。Selenium还支持IE,火狐,和chrome等主流浏览器。

PowerShell 如何直接调用Selenium

PowerShell直接调用Selenium,其实类似PowerShell调用C#方法。以IE浏览器为例,至少需要具备两个文件:

  1. IEDriverServer.exe 启动IE代理,模拟用户操作
  2. WebDriver.dll 暴露API给用户,对浏览器进行控制

纯PowerShell调用Selenium的例子

Add-Type -Path .\WebDriver.dll
$SeNS='OpenQA.Selenium'

# 初始化IE驱动实例
$ieDriver= New-Object "$SeNS.IE.InternetExplorerDriver"

$nav=$ieDriver.Navigate()
$nav.GoToUrl('https://www.pstips.net')

# 设置文本框的值
$search=$ieDriver.FindElementById('s')
$search.SendKeys('测试框架')

# 提交表单
$search.Submit()

$ieDriver.FindElementByClassName('class')
$ieDriver.FindElementById('id')
$ieDriver.FindElementByLinkText(' a link')
$ieDriver.FindElementByPartialLinkText(' powershell')
$ieDriver.FindElementByName('username')
$ieDriver.FindElementByCssSelector('')
# 截屏并保存
$screenshot=$ieDriver.GetScreenshot()
[io.file]::WriteAllBytes('d:\test\a.jpg',$screenshot.AsByteArray)

# 关闭IE进程
$ieDriver.Quit()

为什么要使用Selenium

  1. 看了上面的调用,有的哥们要开始质疑了这里面主要的方法是:找element。和InternetExplorer.Application中的Html Document类中的关键方法类似啊,byid,byName,byClass,ByTag。这么想,没错。
  2. 但是经本人测试,如果web页面稍显复杂,InternetExplorer.Application中的除了getElementById可以勉强接受,其它的方法慢的一塌糊涂。而Selenium却表现非常良好。
  3. 另外Selenium支持css selector查找结点,这无疑是最给力的了,让jquery也投入战斗。
  4. 最后一点当然是Selenium对于浏览器的兼容性优势了。

借助Selenium PowerShell eXtensions

这是一个对Selenium进行封装的PowerShell开源扩展工具,如果你觉得不爽,也可以自己重构或者直接重写。代码托管在:GitHubCodeplex

本文链接: https://www.pstips.net/selenium-powershell-extensions.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

9 条评论 “PowerShell Web 测试框架 Selenium