web自动化测试工具之Selenium的使用(1)

发表于:2023-11-06 09:31

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

 作者:CodeDevMaster    来源:稀土掘金

  概述
  Selenium是一个用于自动化浏览器操作的开源框架。它提供一组工具和库,用于测试 Web 应用程序的功能和用户界面。
  使用Selenium,可以编写脚本来模拟用户在浏览器中的交互行为,如点击、填写表单、选择下拉框等操作。这些脚本可以自动运行,并验证应用程序的行为是否符合预期。
  Selenium支持多种不同的编程语言,包括JavaPython、C#等,使开发人员可以使用自己熟悉的语言编写和执行测试脚本。
  Selenium还有不同的工具和组件,包括Selenium WebDriver用于直接与浏览器交互,Selenium Grid用于在多个浏览器和平台之间并行执行测试,并提供了丰富的API和功能,用于处理浏览器操作和页面元素的查找、交互和断言等。
  工作原理
  利用浏览器原生API,封装成面向对象的Selenium WebDriver API(封装浏览器的各种功能),程序脚本通过Selenium API控制浏览器(分谷歌微软),操作浏览器页面元素,或操作浏览器本身(截屏,窗口大小,启动,关闭)
  应用场景
  自动化测试
  Selenium是最常用的自动化测试工具之一。它可以模拟真实用户的交互行为,自动化执行各种测试用例,包括功能测试、回归测试和性能测试等。通过Selenium,可以自动化测试Web应用程序的各种功能、验证用户界面的正确性,并捕捉和报告问题。
  兼容性测试:
  使用Selenium,可以在不同的浏览器和操作系统上运行自动化测试脚本,以验证Web应用程序在各种环境中的兼容性。这样可以确保应用程序在各种浏览器和平台上的一致性运行。
  数据抓取和网页摘要:
  Selenium可以用于抓取网页内容,从而获取所需的数据。通过编写脚本,可以模拟用户操作浏览器,访问网页并提取数据,如价格比较、新闻摘要等。
  自动化表单填写:
  当需要填写大量表单数据时,手动操作可能会消耗大量时间和精力。使用Selenium可以编写脚本来自动填写表单,提高效率。
  UI自动化测试:
  Selenium可以验证用户界面的正确性和一致性。通过模拟用户交互和操作,可以自动测试用户界面的各种情况,确保它们的正确性和功能性。
  前端开发调试:
  开发人员可以使用Selenium来调试和验证前端代码。通过自动化测试脚本,可以模拟用户操作并查看页面的渲染和功能是否正常工作。
  安装浏览器驱动
  以Chrome浏览器为例,安装浏览器驱动。
  注意: 必须下载对应的 chrome 版本对应的驱动
  chrome驱动:https://sites.google.com/chromium.org/driver/
  chrome驱动(旧):https://sites.google.com/a/chromium.org/chromedriver/
  国内淘宝镜像:http://npm.taobao.org/mirrors/chromedriver/
  1.确定Chrome版本
  确定Chrome版本为:110.0.5481.100
  2.确定ChromeDriver版本
  1)获取Chrome版本号,删除最后一部分,得到110.0.5481。
  2)将结果拼接到https://chromedriver.storage.googleapis.com/LATEST_RELEASE_后面。
  3)得到URL:https://chromedriver.storage.googleapis.com/LATEST_RELEASE_110.0.5481,并访问该链接得到ChromeDriver版本号。
  3.下载ChromeDriver
  找到ChromeDriver对应版本下载即可,这里由于是最新Chrome浏览器,故首页能一下找到。
  根据操作系统下载不同的ChromeDriver
  4.配置环境变量(可选)
  解压压缩包后得到chromedriver.exe可执行文件,python代码是可以直接调用的。
  在path环境变量中,添加chromedriver.exe 所在目录。
  基本使用
  安装Selenium模块
  pip install selenium
  注意点
  由于版本迭代,新版的selenium已经不再使用find_element_by_id方法,而是使用find_element(By.ID, ''),具体参考selenium版本。
  因版本迭代,可能出现异常:AttributeError: 'WebDriver' object has no attribute 'find_element_by_id'
  from selenium import webdriver
  from selenium.webdriver.common.by import By
  # 老版本
  input_element = browser.find_element_by_id("kw")
  # 新版本
  input_element = browser.find_element(By.ID, 'kw')
  使用分析
  实现使用百度自动搜索selenium关键字,并自动点击跳转某个搜索结果。
  获取输入框元素与获取搜索按钮元素信息:
  获取第一个搜索结果地址信息:
  代码实现
  # 导入模块
  import time
  from selenium import webdriver
  from selenium.webdriver.common.by import By
  # 创建浏览器对象,需指定驱动。驱动有2种方式获取
  # 1.通过手动指定浏览器驱动路径
  browser = webdriver.Chrome('D:\Development\chromedriver_win32\chromedriver.exe')
  # 2.通过$PATH环境变量寻找驱动,如果寻找不到就报错
  # browser = webdriver.Chrome()
  # 指定操作浏览器对象的行为
  # 让浏览器访问网页
  browser.get("https://www.baidu.com/")
  # 获取输入框元素
  # input_element = browser.find_element_by_id("kw")
  input_element = browser.find_element(By.ID, 'kw')
  # 输入内容
  input_element.send_keys('selenium')
  # 获取搜索按钮
  button_element = browser.find_element(By.ID, 'su')
  # 点击搜索
  button_element.click()
  time.sleep(3)
  # 获取地址
  url_element = browser.find_element(By.CLASS_NAME, "c-gap-bottom-small").find_element(By.TAG_NAME, 'a')
  url_element.click()
  time.sleep(5)
  # 退出浏览器
  browser.quit()
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号