• 阿里大牛教你基于Python的 Selenium自动化测试示例解析


    今天给大家讲解的是自动化测试示例的解析,如有不对的地方请多多指教。

    自动化测试示例如下:

    from selenium import webdriver

      from selenium.webdriver.common.keys import Keys

      driver = webdriver.Chrome()

      driver.get("https://pypi.org/")

      print(driver.title)

      assert 'Python' in driver.title

      elem = driver.find_element_by_name('q')

      elem.clear()

      elem.send_keys('deniro')

      elem.send_keys(Keys.RETURN)

      assert 'No results found.' not in driver.page_source

      driver.close()

       解析如下:

    (1)、首先导入 webdriver 与 Keys 模块。selenium.webdriver 模块包含驱动浏览器的实现方法。 支持Firefox、Chrome、IE 浏览器。 Keys 模块包含键盘中的键,诸如F1,ALT 等。

       from selenium import webdriver

       from selenium.webdriver.common.keys import Keys

    (2)、接下来,创建 Chrome WebDriver 实例。

     driver = webdriver.Chrome()

      driver.get 方法会在浏览器中打开指定的 URL 页面。 当页面完全加载后(会触发 “onload” 事件),才会把控制权交给我们写的测试脚本。

      注意: 如果如果加载的页面,使用了很多 AJAX 请求,那么 WebDriver 可能不知道完全加载的时间点。

    (3)、然后是一个断言,测试网页标题(即 H5 中的“Python” 字符串:

     assert 'Python' in driver.title

    (4)、 WebDriver 提供了多种查找元素的方法,形如 使用 find_element_by_*。  例如,这里使用了 find_element_by_name 方法通过其标签的 name 属性,来查找输入框元素 。

     elem = driver.find_element_by_name('q')

    (5) 、然后,我们模拟键盘操作,在输入框中输入字符。 那些特殊字符可以使用 selenium.webdriver.common.keys 来输入,比如示例中的回车符。  有些输入框有设置默认值,所以我们首先清除输入框中的默认值,以避免影响预期结果:

       elem.clear()

      elem.send_keys('deniro')

      elem.send_keys(Keys.RETURN)

    如果对软件测试、接口测试、自动化测试、面试经验交流。感兴趣可以加软件测试交流:1085991341,还会有同行一起技术交流。

    (6)、回车后,浏览器就会调用后端服务,执行搜索操作,最后返回搜索结果。我们可以在返回的页面源代码中,测试我们所希望或不希望看到的字符:

     assert 'No results found.' not in driver.page_source

    (7)、最后关闭浏览器 。  也可以调用 quit 方法实现类似功能,但它们之间有一些区别。 quit 方法会退出整个浏览器,而 close 方法只会关闭浏览器中的一个选项卡,如果仅打开一个选项卡,那么大多数现代浏览器也会整个关闭 。

     driver.close()

    以上,希望对你有帮助,有被帮助到的朋友欢迎点赞,评论。

  • 相关阅读:
    循环链表问题
    非常有用的编程学习网站
    我的单例模式(C++)
    C# xml解析
    设计模式趣解
    简单工厂(C++)
    贝塞尔曲线 原理
    C++ 1.#QNAN0;1.#QNAN0
    [NOI2018]屠龙勇士 excrt
    [NOI.AC#30]candy 贪心
  • 原文地址:https://www.cnblogs.com/Chaqian/p/12796501.html
Copyright © 2020-2023  润新知