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);
基本操作就这些了,网上找到一个不错的封装