b.函数嵌套()
# 进入嵌套
self.driver.switch_to.frame('iframe-superadmin')
#退出嵌套
self.driver.switch_to.default_content()
c.flash,验证码(关闭验证码或使用万能码)
d.xpath问题:最好采用最简xpath,当xpath中出现li[10]等时需注意,有时页面定位会出现问题
4、采用CSV存数据
CSV:以纯文本形式存储表格数据(数字和文本),CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。大量程序都支持某种CSV变体,至少是作为一种可选择的输入/输出格式。
melody101,melody101,m,1,3,123456,@qq.com melody102,melody101,f,2,5,123456,@qq.com melody103,melody101,m,3,2,123456,@qq.com
import csv
# 读取CSV文件到user_list字典类型变量中
user_list = csv.reader(open("list_to_user.csv", "r"))
# 遍历整个user_list
for user in user_list:
sleep(2)
self.logn_in('admin', 'admin')
sleep(2)
# 读取一行csv,并分别赋值到user_to_add 中
user_to_add = {'account': user[0],
'realname': user[1],
'gender': user[2],
'dept': user[3],
'role': user[4],
'password': user[5],
'email': user[0] + user[6]}
self.add_user(user_to_add)5、对下拉列表的定位采用select标签
from selenium.webdriver.support.select import Select
# 选择部门
dp =self.driver.find_element_by_id('dept')
Select(dp).select_by_index(user['dept'])
# 选择角色
Select(self.driver.find_element_by_id('role')).select_by_index(user['role'])
6、模块化代码
需要对自动化重复编写的脚本进行重构(refactor),将重复的脚本抽取出来,放到指定的代码文件中python网页自动化脚本,作为共用的功能模块。使用模块化代码注意需倒入该代码。
#模块化代码后引用,需导入代码模块 from ranzhi_lib import RanzhiLib self.lib = RanzhiLib(self.driver) # 点击后台管理 self.lib.click_admin_app() sleep(2) # 点击添加用户 self.lib.click_add_user() # 添加用户 self.lib.add_user(user_to_add) sleep(1) # 退出 self.lib.logn_out() sleep(2)