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);
基本操作就这些了,网上找到一个不错的封装
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .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 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义