本文目录
什么是Selenium
Selenium是一款著名的web应用程序测试工具,它能通过在浏览器中模拟用户的动作来完成测试,其api支持java,c#,python,ruby,php,perl,javascript这些主流编程语言和脚本语言。Selenium还支持IE,火狐,和chrome等主流浏览器。
PowerShell 如何直接调用Selenium
PowerShell直接调用Selenium,其实类似PowerShell调用C#方法。以IE浏览器为例,至少需要具备两个文件:
- IEDriverServer.exe 启动IE代理,模拟用户操作
- 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
- 看了上面的调用,有的哥们要开始质疑了这里面主要的方法是:找element。和InternetExplorer.Application中的Html Document类中的关键方法类似啊,byid,byName,byClass,ByTag。这么想,没错。
- 但是经本人测试,如果web页面稍显复杂,InternetExplorer.Application中的除了getElementById可以勉强接受,其它的方法慢的一塌糊涂。而Selenium却表现非常良好。
- 另外Selenium支持css selector查找结点,这无疑是最给力的了,让jquery也投入战斗。
- 最后一点当然是Selenium对于浏览器的兼容性优势了。
借助Selenium PowerShell eXtensions
这是一个对Selenium进行封装的PowerShell开源扩展工具,如果你觉得不爽,也可以自己重构或者直接重写。代码托管在:GitHub,Codeplex
本文链接: https://www.pstips.net/selenium-powershell-extensions.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
赞
HOHO!
PowerShell占领世界。
请问下,我在设置文本框的值的时候提示我不能再关闭的窗体中找到元素这是为什么?
Selenium会打开浏览器,你在设置时,请确保自己的浏览器是打开的,没有被关闭。
Selenium打开的IE我没有关,一直提示:使用“1”个参数调用“FindElementById”时发生异常:“Unable to find element on closed window”;
可能IE中的Selenium驱动有bug,你试试这里方法吧:
http://stackoverflow.com/questions/31134408/unable-to-find-element-on-closed-window-on-ie-11-working-with-selenium
大神,请问如何安装selenium,网上找了好久都是要安装什么python、visual studio什么的,我不想安装这些东西,请问是否能够直接安装selenium?谢谢。
thanks a lot