Selenium 进行参数化
Selenium参数化分为大小:
小:list、dict、函数
大:txt、excel、mysql、redis
哪种方式使自己的工作简单高效就选那种!!!
Selenium进行参数化有多种形式:
本文全部以百度为例
一、把需要的参数写在一个txt文档中进行遍历,示例如下
#引入所需包
import time,codecs
from selenium.webdriver.common.by import By
from selenium import webdriver #把打开的文档内容进行utf-8编码
source = codecs.open("123.txt","r","utf-8")
value = source.readlines()
# print(list(value)) #遍历txt文档中的内容
for search in value:
driver = webdriver.Chrome()
url = "https://www.baidu.com/"
driver.get(url)
driver.find_element(By.ID,"kw").send_keys(search)
time.sleep()
driver.find_element(By.ID,"su").click()
driver.quit()
二、把需要的参数写在一个函数中,需要的时候进行调用,示例如下
函数部分
def fun(user="hanxiaobei",pswd=""):
print(u"调用函数成功")
return user,pswd
代码部分
from selenium.webdriver.common.by import By
from selenium import webdriver
import time
import k1
c2,c3=k1.fun()
# print(k2,k3) #打印是否调用成功 driver = webdriver.Chrome()
url = "https://www.baidu.com/"
driver.get(url)
driver.find_element(By.LINK_TEXT,"登录").click()
time.sleep()
driver.find_element(By.ID,"TANGRAM__PSP_10__userName").send_keys(c2)
driver.find_element(By.ID,"TANGRAM__PSP_10__password").send_keys(c3)
time.sleep() #由于需要输入验证码,我采用的手动输入,嘎嘎
driver.find_element(By.ID,"TANGRAM__PSP_10__submit").click()
time.sleep()
driver.quit()
三、把需要的参数写在字典中,需要的时候进行调用,示例如下
字典写成了一个函数,如下
def zidian():
data = {"han":"Hanxiaobei","user":,"hanxiaobei1":""}
return data
遍历字典代码部分,如下
from selenium.webdriver.common.by import By
from selenium import webdriver
import time
import k1
info=k1.zidian()
# print(info)
for username,passwd in info.items():
print(username)
print(passwd)
driver = webdriver.Chrome()
url = "https://www.baidu.com/"
driver.get(url)
driver.find_element(By.LINK_TEXT,"登录").click()
time.sleep()
driver.find_element(By.ID,"TANGRAM__PSP_10__userName").send_keys(username)
driver.find_element(By.ID,"TANGRAM__PSP_10__password").send_keys(passwd)
time.sleep()
driver.find_element(By.ID,"TANGRAM__PSP_10__submit").click()
time.sleep()
driver.quit()
四、可以把需要的参数写在Excel中,进行遍历取值
关于操作Excel的模块和方法参考我之前写的:http://www.cnblogs.com/hanxiaobei/p/6565587.html
Selenium 进行参数化的更多相关文章
- selenium,unittest——参数化url,并多线程加快脚本运行速度
利用参数化连续打开网页: #encoding=utf-8import unittestimport paramunittestimport timefrom selenium import webdr ...
- Java+Selenium 如何参数化验证Table表格数据
场景: 当我们编写脚本时候,需要验证某个表格某一列数据,或者多个列数据. 如果每验证一个就写一个方法,实在是太费事, 因此我们需要有参数化的思想,把某列数据看成固定的元素,然后去验证即可. 1. 示例 ...
- 【虫师】【selenium】参数化
# 1 #coding=utf-8 from selenium import webdriver import os,time source = open("F:\\test\\info.t ...
- python+selenium自动化--参数化(paramunittest)
unnittest的参数化模块-paramunittest paramunittest是unittest实现参数化的一个专门的模块,可以传入多组参数,自动生成多个用例 两种用法 import unit ...
- Selenium之利用Excel实现参数化
Selenium之利用Excel实现参数化 说明:我是通过Workbook方式来读取excel文件的,这次以登陆界面为例 备注:使用Workbook读取excel文件,前提是excel需要2003版本 ...
- Selenium常用方法及函数、txt参数化
常用方法及函数: 1.表单的提交方法:submit解释:查找到表单(from)直接调用submit即可实例:driver.find_element_by_id("form1").s ...
- 行为驱动:Cucumber + Selenium + Java(四) - 实现测试用例的参数化
在上一篇中,我们介绍了Selenium + Cucumber + Java框架下的使用Tags对测试用例分组的实现方法,这一篇我们用数据表格来实现测试用例参数化. 4.1 什么是用例参数化 实际测试中 ...
- 自动化测试基础篇--Selenium中数据参数化之TXT
摘自https://www.cnblogs.com/sanzangTst/p/7722594.html 一.搜索参数化 在TXT文件中保存需要搜索的内容: 测试代码: 1 #!/usr/bin/env ...
- python + selenium 模块封装及参数化
模块封装 示例代码: baidu.py from time import sleep from selenium import webdriver driver = webdriver.Chrome( ...
随机推荐
- MongoDB小结01 - MongoDB简介
我们为什么要去学习MongoDB MongoDB是一种强大.灵活.可扩展的数据存储方式. 丰富的数据模型 MongoDB是面向文档的数据库,不是关系型数据库.它将原来'行'(row)的概念换成了更加灵 ...
- linux命令dmesg查看进程被杀死原因
有一次一个python进程挂了,使用了下这个命令. 可以看到原因:虚拟机总共内存8082608KB,结果python项目就消耗掉了7341764KB,内存泄露,导致python进程被系统杀死 顺带介绍 ...
- hdu 5288 OO’s Sequence(2015 Multi-University Training Contest 1)
OO's Sequence Time Limit: 4000/2000 MS (Jav ...
- [Maid] Write Tasks in Markdown with Maid
Maid enables you to write your tasks in Markdown. Create a maidfile.md or a README.mdthen add Header ...
- C++之桟的应用---括号匹配
刚開始学习数据结构.用桟写了一个经典的应用,括号匹配. 算法思路: 输入字符串时.将 '(' , '[' 压入桟.遇到 ')' ']' 时,再栈顶出桟.进行括号匹配.假设成功匹配.则继续进行.否 ...
- UVA - 11374 Airport Express (Dijkstra模板+枚举)
Description Problem D: Airport Express In a small city called Iokh, a train service, Airport-Express ...
- Codeforces Round #233 (Div. 2)D. Painting The Wall 概率DP
D. Painting The Wall ...
- JLabel作为展现元素时需要注意的事项
如果没有内容,JLabel默认透明就无法作为点击区域了,所以为了让其可以响应鼠标事件需要设置 setOpaque(true) 这样就可以响应鼠标事件了 (吐槽一下,多年以前在大学做个web地图导航的网 ...
- Bing必应地图中国API-画线与添加多边形
Bing必应地图中国API-画线与添加多边形 2011-05-24 14:31:20| 分类: Bing&Google|字号 订阅 在必应地图上画线的功能应用也很广泛:显示从出发地到 ...
- 洛谷P3690 LCT模板
题目:https://www.luogu.org/problemnew/show/P3690 自己竟然从没有钻研过LCT上的连通性问题! 于是被最后一个点卡了,似乎因为 find 函数只能找出连通性而 ...