圣矢网络重庆网站建设优化推广公司,微网页制作软件手机版,大连h5开发公司,网站标签优化怎么做提到用于Web应用程序自动化测试的工具#xff0c;大家肯定第一个想到的就是Selenium。可以说#xff0c;Selenium已经成为以编程方式自动化浏览器的事实标准。但是#xff0c;Selenium作为老牌工具#xff0c;也存在一些缺点#xff0c;比如不支持Shadow DOM #xff0c;… 提到用于Web应用程序自动化测试的工具大家肯定第一个想到的就是Selenium。可以说Selenium已经成为以编程方式自动化浏览器的事实标准。但是Selenium作为老牌工具也存在一些缺点比如不支持Shadow DOM 而这在现代网页程序中非常常见。这就给新一代浏览器自动化工具的发展提供了机会。比如下面我们要介绍的Playwright for .NET。Playwright for .NETPlaywright 是微软开源的一个基于 Node.js 的工具库可使用相同的API调用ChromiumGoogle-Chrome、Microsoft-Edge、WebKitApple-Safari和Mozilla-Firefox浏览器自动执行任务。而Playwright for .NEThttps://github.com/microsoft/playwright-dotnet是Playwright的官方.NET移植拥有原始库中的所有功能可以在.NET中使用。功能一瞥首先执行下面命令安装全局工具:dotnet tool install --global Microsoft.Playwright.CLI
我们创建一个NUnit测试项目然后在项目目录下执行下面命令引用“Microsoft.Playwright” Nuget包dotnet add package Microsoft.Playwright
dotnet build
playwright install
最后一个命令会调用之前安装的全局工具安装Playwright工作所需的浏览器。我们测试执行百度高级搜索的操作编写测试代码如下using Microsoft.Playwright;
using NUnit.Framework;
using System.Threading.Tasks;namespace TestProject1
{public class Tests{[Test]public async Task BaiduSearch(){using var playwright await Playwright.CreateAsync();await using var browser await playwright.Chromium.LaunchAsync(new() { Headless true });var page await browser.NewPageAsync();await page.GotoAsync(https://www.baidu.com/);await page.WaitForSelectorAsync(#s-usersetting-top);// 鼠标悬停在设置按钮弹出菜单await page.HoverAsync(#s-usersetting-top);// 点击高级搜索链接弹出高级搜索窗口await page.ClickAsync(a[href//www.baidu.com/gaoji/advanced.html]);// 输入搜索关键字await page.TypeAsync(input[nameq1], \My IO\);var page1 await page.RunAndWaitForPopupAsync(async () {// 点击搜索await page.ClickAsync(.advanced-search-btn);});//检查文本框内容var handle await page1.WaitForSelectorAsync(#kw);var text await handle.GetAttributeAsync(value);Assert.AreEqual(\My IO\, text);}}
}
通过上面的示例我们看到Playwright for .NET可以使用多种方式定位元素还可以执行一些特殊操作比如鼠标悬停。高级功能Playwright for .NET还有一个厉害的录制功能无需写一行代码我们只需手动操作浏览器它会录制我们的操作然后自动生成代码脚本。执行下面的命令启动录制playwright codege
结论有了Playwright for .NET我们就可以创建支持所有现代Web浏览器的自动化测试了大家赶快用起来吧欢迎关注我的个人公众号”My IO“