51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1021|回复: 1
打印 上一主题 下一主题

[转贴] Selenium自动化测试高手必备:基于WebDriver的Web UI自动化

[复制链接]
  • TA的每日心情
    擦汗
    半小时前
  • 签到天数: 1048 天

    连续签到: 1 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2022-1-10 13:50:56 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
    Selenium是当前最流行的Web UI自动化
    测试
    框架,熟悉Selenium的人也知道,Selenium是基于WebDriver。那么能不能不用Selenium,直接调用WebDriver来实现Web UI自动化呢?答案当然是可以的,本文就带你来实现基于WebDriver的Web U自动化。本文通过调用Selenium、Curl命令、直接调用ChromeDriver三种方式,实现了同样的功能。编程语言为C#,已在Visual Studio 2019测试通过,其他主流编程语言也可以完成同样功能。对比三种实现方式,大家就可以容易的理解如何不用Selenium而直接调用WebDriver完成Web U自动化。阅读以下内容前,需要有Selenium和WebDriver相关基础知识。

    手动步骤

    1.打开Chrome浏览器

    2.进入https://www.baidu.com/主页

    3.搜索框输入“Selenium”

    4.点击“百度一下”

    5.关闭Chrome浏览器

    调用Selenium的C#代码



    1. using OpenQA.Selenium;
    2. using OpenQA.Selenium.Chrome;
    3. namespace HelloSelenium
    4. {
    5. class Program
    6. {
    7. static void Main(string[] args)
    8. {
    9. IWebDriver driver = null;
    10. try
    11. {
    12. //1.  打开Chrome浏览器
    13. driver = new ChromeDriver();
    14. //2.  进入https://www.baidu.com/主页
    15. driver.Navigate().GoToUrl("https://www.baidu.com/");
    16. //3.    搜索框输入“Selenium”
    17. driver.FindElement(By.Id("kw")).SendKeys("Selenium");
    18. //4.  点击“百度一下”
    19. driver.FindElement(By.Id("su")).Click();
    20. }
    21. finally
    22. {
    23. //5.  关闭Chrome浏览器
    24. if (driver != null)
    25. {
    26. driver.Dispose();
    27. }
    28. }
    29. }
    30. }
    31. }
    复制代码

    Curl命令

    1.打开Chrome浏览器

    启动命令提示符,执行chromedriver.exe --port=9515 (注意选用与Chrome版本对应的chromedriver版本,端口只要未被占用即可)。

    1. Curl命令
    2. 1.打开Chrome浏览器
    3. 启动命令提示符,执行chromedriver.exe --port=9515 (注意选用与Chrome版本对应的chromedriver版本,端口只要未被占用即可)。
    复制代码



    另起一个命令提示符,执行curl命令(注意端口号),记住返回的sessionId。

    curl  -d @JsonFile1.json http://localhost:9515/session
      JsonFile1.json内容:
      {
        "desiredCapabilities": {
          "caps": {
            "nativeEvents": false,
            "browserName": "chrome",
            "version": "",
            "platform": "ANY"
          }
        }
      }

    2.进入https://www.baidu.com/主页
    1. curl -d @JsonFile2.json http://localhost:9515/session/36d903cbd2177c278b5d39bbe74a3318/url
    2.   JsonFile2.json内容:
    3.   {"url":"https://www.baidu.com/"}
    复制代码
    3.搜索框输入“Selenium”
    1. 获取elementId:
    2. curl -d @JsonFile3.json http://localhost:9515/session/36d903cbd2177c278b5d39bbe74a3318/element
    3.   JsonFile3.json内容:{"using":"css selector","value":"#kw"}
    复制代码


    输入“Selenium”:

    curl -d @JsonFile4.json http://localhost:9515/session/36d903cbd2177c278b5d39bbe74a3318/element/0.7861531328870939-1/value

    JsonFile4.json内容:{"value":["Selenium"]}

    4.点击“百度一下”

    获取elementId:

    curl -d @JsonFile5.json http://localhost:9515/session/36d903cbd2177c278b5d39bbe74a3318/element

    JsonFile5.json内容:

      {"using":"css selector","value":"#su"}


    点击:

    curl -d @JsonFile4.json curl -d @JsonFile6.json http://localhost:9515/session/36d903cbd2177c278b5d39bbe74a3318/element/0.7861531328870939-2/click

    JsonFile6.json内容:

      {}

    5.关闭Chrome浏览器

    关闭Chrome:

    关闭Chrome

    curl -X DELETE http://localhost:9515/session/36d903cbd2177c278b5d39bbe74a3318

    关闭chromedriver.exe:

    curl http://localhost:9515/shutdown

    调用ChromeDriver的C#代码






















    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    2#
    发表于 2022-1-21 10:43:00 来自手机 | 只看该作者
    Selenium是Web UI自动化测试工具,不是框架
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-18 09:49 , Processed in 0.073279 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表