Powershell + Selenium 截屏

网友投稿 1179 2022-09-08

Powershell + Selenium 截屏

Powershell + Selenium 截屏

之前讲过一些Selenium 基础操作, 实际测试过程中需要用到截屏功能, 逻辑如下:

首先找到需要截图的元素调用GetScreenshot() 方法转换为Base64编码格式的字符串, 赋值给静态类[OpenQA.Selenium.Screenshot]另存为指定路径中的指定文件名

注: 测试过程发现一个问题, 需要将浏览器窗口最大化, 否则有可能截图大小不完整

更新注:在实际测试过程中使用任务计划调用脚本, 始终无法跟Powershell ISE 当中的测试保持一致, 问题现象是使用Powershell ISE 可以正常截图, 但是使用任务计划调用脚本截图只能截取一部分, 这时候考虑到可能是任务计划默认打开的浏览器是指定大小的窗口, 根据这个猜测,一直在找方法怎么调整窗口大小来解决该问题,最终的测试了N遍无法更改默认窗口大小, 最后看到目标网页下面有滚动条, 试着把滚动条移动之后, 把想要截图的元素显示到当前显示区域, 再进行截图就可以了, 这也算是一个迂回方案了

ipmo D:\tools\Selenium\WebDriver.Support.dllipmo D:\tools\Selenium\WebDriver.dll$url = '= New-Object OpenQA.Selenium.Edge.EdgeDriver$nav = $EdgeDriver.Navigate()$nav.GoToUrl($url)$maininfo = $EdgeDriver.FindElement([OpenQA.Selenium.By]::ClassName('main_in'))$jscmd = "window.scrollTo(1000,0);" # 1000 向左移动滚动条的距离, 0 向下移动的距离$EdgeDriver.ExecuteScript($jscmd) # 执行js 脚本移动滚动条[OpenQA.Selenium.Screenshot]$screenshot = $maininfo.GetScreenshot() ### Core Code ###$screenshot_path = "D:\Tools\testscreenshot.png"$screenshot.SaveAsFile($screenshot_path)

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:移动应用的动态发布在哪些环节比较重要?
下一篇:
相关文章

 发表评论

暂时没有评论,来抢沙发吧~