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( ...
随机推荐
- java压缩与解压文件
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import ...
- PLU Decomposition
PLU分解的优点是,能够将Ax=b的矩阵,转换成Ly=b, Ux = y 的形式.当我们改变系数矩阵b时,此时因为矩阵L和U均是固定 的,所以总能高效的求出矩阵的解. // LU.cpp : Defi ...
- java 代理模式具体解释
java 动态代理(JDK和cglib) 设计模式这东东每次看到就明确可过段时间又不能非常流利的说出来.今天就用具体的比喻和实例来加深自己的理解(小弟水平不高有不正确的地方希望大家能指出来). (1) ...
- 使用Docker部署Gitlab
由于公司的代码server已使用Gitosis搭建,但由于用户和权限管理太麻烦. 如今想在原有server上再搭建Gitlab,使用Gitlab官方方法直接安装. 会导致与Gitosis冲突,使得Gi ...
- Python爬虫开发【第1篇】【Requests】
1.安装 利用 pip 安装 或者利用 easy_install 都可以完成安装: pip install requests easy_install requests 2.基本GET请求(heade ...
- union关键字及大小端模式
1. union 关键字 union 维护足够的空间来置放多个数据成员中的“一种”,而不是为每一个数据成员配置空间,在 union 中所有的数据成员共用一个空间,同一时间只能储存其中一个数据成员,所有 ...
- NSSet所有API学习。
/****************集合(NSSet)和数组(NSArray)有相似之处,都是存储不同的对象的地址.只是NSArray是有序的集合,NSSet是无序的集合,同一时候NSSet能够保证数据 ...
- list集合去重复元素
//set集合去重,不打乱顺序 public static void main(String[] args){ List<String> list = new ArrayList<S ...
- [bzoj3073]Journeys
https://www.zybuluo.com/ysner/note/1295471 题面 \(Seter\)建造了一个很大的星球,他准备建造\(N\)个国家和无数双向道路.\(N\)个国家很快建造好 ...
- 基于Flink的视频直播案例(下)
目录 直播数字化运营 结果写入Elasticsearch 第二种思路 Flink实现总结 Elasticsearch部分 Kibana部分 直播数字化运营 业务目标 全站观看直播总人数以及走势 房间直 ...