TA的每日心情 | 无聊 昨天 09:05 |
---|
签到天数: 1050 天 连续签到: 1 天 [LV.10]测试总司令
|
本文以一个页面例子说明运行自动化脚本需要哪些步骤及实现过程中的报错汇总 具体实现功能:
·登录操作
·进入三级菜单
·新建页面输入文本框值,输入时间,进入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)
复制代码
|
|