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 @ 2017-08-07 09:40  ZuQing  阅读(405)  评论(0编辑  收藏  举报