WebDriver自动化测试工具(2)---基本操作

一.设置打开的浏览器大小/位置

    driver.Manage().Window.Maximize();  //最大化
    driver.Manage().Window.Position = new System.Drawing.Point(500, 600);  //设置其位置
    driver.Manage().Window.Size = new System.Drawing.Size(100, 600);  //设置其大小,设置了最大化就无需在设置Size

二.查找元素使用的选择器

    driver.FindElement(By.Id("id"));  //==driver.FindElementById
    driver.FindElement(By.ClassName("class"));
    driver.FindElement(By.CssSelector("#id")); //使用过jquery的一般都喜欢用这种

三.网页标题/内容

    var content = driver.PageSource;  //网页内容
    var title = driver.Title; //网页标题

四.执行Js(可以给其传递参数)

    (driver as IJavaScriptExecutor).ExecuteScript("alert('Hi')");

可以通过执行js来操作网页,比如有一些网页需要滚动到一定位置才通过Ajax取数据的时候可以用js来操作,使其滚动条滑动

五.等待

    //在20S内,如果_driver.FindElements(By.Id("id")).Count>0条件成立则跳出,超出20S则会抛出异常
    //return true则跳出,return false则继续循环里面的代码
    //其实这里和用while类次
    //作用:有些网页通过滚动到某个地方的时候才用ajax读取数据,这时候就需要等待其读取完成,那就可以通过这样做操作
    new WebDriverWait(driver, TimeSpan.FromSeconds(20)).Until<bool>((_driver) =>
    {
        return _driver.FindElements(By.Id("id")).Count > 0;
    });

WebDriverWait类需要引用OpenQA.Selenium.Support.UI

六.设置网页加载Timeout和查找元素Timeout以及脚本Timeout

    driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(10);  //如果网页10S内没有加载完全,则会抛出异常
    driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);  //如果查找元素在10S内还没有找到(driver.FindElement(By.Id("id"))),则会抛出异常
    driver.Manage().Timeouts().AsynchronousJavaScript = TimeSpan.FromSeconds(10); //如果异步脚本10S内没有加载完全,则会抛出异常

七.截屏

 Screenshot scrFile = driver.GetScreenshot();
 scrFile.SaveAsFile(文件名, ScreenshotImageFormat.Png);

基本操作就这些了,网上找到一个不错的封装

 

posted @   ZuQing  阅读(412)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示