• 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);

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

  • 相关阅读:
    indexDB的用法
    append动态生成的元素,无法触发事件的原因及解决方案
    jquery中attr()和prop()的区别
    arguments.callee
    meter标签度量衡如何改变颜色
    Nginx入门
    linux中的权限管理
    python_面向对象
    ORM
    Flask入门
  • 原文地址:https://www.cnblogs.com/zuqing/p/7297637.html
Copyright © 2020-2023  润新知