基于Python的 Selenium自动化测试示例解析

发表于:2019-12-18 14:58

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:deniro    来源:掘金

  自动化测试示例如下:
   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 中的 <title> 标签)中是否包含 “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)
  **(6)**回车后,浏览器就会调用后端服务,执行搜索操作,最后返回搜索结果。我们可以在返回的页面源代码中,测试我们所希望或不希望看到的字符:
 assert 'No results found.' not in driver.page_source
  **(7)**最后关闭浏览器 。  也可以调用 quit 方法实现类似功能,但它们之间有一些区别。 quit 方法会退出整个浏览器,而 close 方法只会关闭浏览器中的一个选项卡,如果仅打开一个选项卡,那么大多数现代浏览器也会整个关闭 。
 driver.close()

      本文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号