Python Selenium自动化基础实现自动化的几个步骤

发表于:2020-10-29 09:23

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

 作者:桃子    来源:51Testing软件测试网原创

  本文以一个页面例子说明运行自动化脚本需要哪些步骤及实现过程中的报错汇总
  具体实现功能:
  ·登录操作
  ·进入三级菜单
  ·新建页面输入文本框值,输入时间,进入iframe,点击提交按钮
  一、 自动化实现步骤
  1. 首先需要导入模块名
  有些功能selenium框架已经封装好了,只需要我们直接调用就好
  常用的导入功能:
  from selenium import webdriver   #导入webdriver驱动
  from time import sleep  #导入sleep函数
  from selenium.webdriver.common.action_chains import ActionChains  #导入ActionChains?函数
  from selenium.webdriver.support.select import Select#导入select函数
  ·webdriver驱动:通过webdriver驱动来调用浏览器
  ·sleep函数:正常网页加载过程中,如果不通过时间等待再点击元素是无法定位到元素,从而报错,sleep函数是自动化过程中经常用到的功能
  ·ActionChains 函数:ActionChains 是模拟鼠标事件的函数
  2. 启动浏览器
  所有的自动化操作都是基于页面打开的前提下,所以我们的首要步骤显示要启动浏览器。
  在Selenium 中可以启动任何浏览器,前提是需要下载相应的浏览器驱动
  这里以chrom浏览器为例
  代码实现:
  chrome_options = webdriver.ChromeOptions()
  chrome_options.add_experimental_option("excludeSwitches", ['enable-automation'])
  driver = webdriver.Chrome(options=chrome_options)
  driver.get("http://127.0.0.1:8080/portal-web/framework/login?")
  driver.maximize_window()
  3. 功能实现
  3.1 元素定位
  刚接触自动化的同学可能都被元素定位搞的晕头转向
  元素定位有八大方式(id、tagname、class、xpath等等),到底使用哪一种呢
  所有的元素定位方式我都用到了,还是不能定位到元素这到底是什么原因呢
  刚开始我也是这样,经过一段时间的摸索发现原来是这样~~
  ·元素定位-id,id是唯一,通过id可定位任何元素
  ·元素定位-xpath定位:其他定位方式都不会,只要会xpath就能搞定定位问题
  ·定位不到:考虑时间、窗体、ifame等因素
  3.2 元素方法
  1) click()-单击(最常用)
  driver.find_element_by_id('dlu').click()
  2) send_keys  文本框输入内容
  driver.find_element_by_id('password').send_keys('11qq!!')
  实现功能:登录功能
  driver.find_element_by_name("username").send_keys('b')#定位用户名,输入值
  driver.find_element_by_id('password').send_keys('11qq!!')#定位密码,输入值
  driver.find_element_by_id('dlu').click()#点击登录按钮
  3) double_click  双击
  ActionChains(driver).double_click(ul1).perform()  
  实现功能:双击进入三级菜单
  ul1=driver.find_element_by_xpath("//*[text()='质量基础']")
  ActionChains(driver).double_click(ul1).perform()#双击一级菜单
  ul2=driver.find_element_by_xpath("//*[text()='供应商产品质量维持认证']")
  ActionChains(driver).double_click(ul2).perform()#双击二级菜单
  ul3=driver.find_element_by_xpath("//*[text()='供应商产品质量维持认证计划']")
  ActionChains(driver).double_click(ul3).perform()#双击三级菜单
  sleep(3)

   ...... 

版权声明:本文出自《51测试天地》第五十九期。51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号