python自动化测试关键字驱动,python-Selenium-数据驱动测试(DDT)与关键字驱动测试(KDT)...

UI自动化入门代码

# encoding = utf-8

from selenium import webdriver

driver = webdriver.Firefox(executable_path="c://geckodriver.exe")

driver.get("http://www.baidu.com")

element = driver.find_element_by_id("kw")

element.send_keys("光荣之路")

# driver.quit()

效果:自动打开火狐浏览器,并在搜索框中输入"光荣之路"。

数据驱动

# encoding = utf-8

from selenium import webdriver

all_list = []

info_list1 = ["c://geckodriver.exe", "http://www.baidu.com", "kw", "光荣之路"]

info_list2 = ["c://geckodriver.exe", "http://www.baidu.com", "kw", "刘德华"]

info_list3 = ["c://geckodriver.exe", "http://www.baidu.com", "kw", "吴晓华"]

all_list.append(info_list1)

all_list.append(info_list2)

all_list.append(info_list3)

for info in all_list:

driver = webdriver.Firefox(executable_path=info[0])

driver.get(info[1])

element = driver.find_element_by_id(info[2])

element.send_keys(info[3])

效果:自动打开火狐浏览器,并在搜索框中输入"光荣之路"。接着代开第二个火狐浏览器窗口,并在搜索框中输入"刘德华"。接着代开第二个火狐浏览器窗口,并在搜索框中输入"吴晓华"。

继续引申为将数据存放到文件中,通过读取文件内容作为参数,来执行脚本。

53625a6127958e307b92ebebd8dde826.png

# encoding = utf-8

from selenium import webdriver

with open(r"testdata.txt","r")as fp:

data = fp.readlines()

print(data)

for i in data:

print(i.split(","))

print(i.split(",")[0])

for i in data:

driver = webdriver.Firefox(executable_path=i.split(",")[0])

driver.get(i.split(",")[1])

element = driver.find_element_by_id(i.split(",")[2])

element.send_keys(i.split(",")[3])

效果:自动打开火狐浏览器,并在百度搜索框中输入"光荣之路"。接着代开第二个火狐浏览器窗口,并在搜狗搜索框中输入"汤达人"。

关键字驱动

这里没有分多个文件调用,直接写到一个.py文件中了。

db67cb6f989e357e35c1fbf180a8500c.png

from selenium import webdriver

from selenium.webdriver.support.ui import WebDriverWait

import time

def get_element(driver, locate_type, loacte_expression):

try:

element = WebDriverWait(driver,10).until(lambda x:x.find_element(by=locate_type,value=loacte_expression))

return element

except Exception as e:

raise e

#

def sleep_time(sleeptime):

time.sleep(sleeptime)

def init_webpage(url,sleeptime):

global driver

driver = webdriver.Firefox(executable_path="C:\geckodriver.exe")

driver.get(url)

sleep_time(sleeptime)

def search(locate_type,loacte_expression,value,sleeptime):

global driver

get_element(driver,locate_type,loacte_expression).send_keys(value)

sleep_time(sleeptime)

def quit():

global driver

driver.close()

#

with open(r"mykdt.txt","r",encoding='utf-8') as fp:

datas = fp.readlines()

for data in datas[1:]:

method = (data.split("||")[0]).strip()

locate_type = (data.split("||")[1]).strip()

loacte_expression = (data.split("||")[2]).strip()

value = (data.split("||")[3]).strip()

sleeptime = (data.split("||")[4]).strip()

if locate_type == "n" and loacte_expression == "n" and value != "n":

str_do = "%s('%s',%s)"%(method,value,sleeptime)

elif locate_type != "n" and loacte_expression != "n" and value != "n":

str_do = "%s('%s','%s','%s',%s)"%(method,locate_type,loacte_expression,value,sleeptime)

elif locate_type == "n" and loacte_expression == "n" and value == "n":

str_do = "%s()"%(method)

eval(str_do)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值