导入excle表格中的数据
//导入xlrd模块,步骤详见[导入的步骤](https://blog.csdn.net/weixin_40449300/article/details/79138741)
import xlrd
data=xlrd.open_workbook(r"绝对路径")
table=data.sheet_by_index(0)
table.nrows //获取行数
table.row_values(i) //获取行数据
table.col_values(i) //获取列数据
table.cell_value(i,j) //读取单元格数据
driver=webdriver.Firefox()
driver.get(url)
driver.maximiza_window()
driver.find_element_by_xpath(//input(@class="good")//input(text()="美丽")
driver.quit()
常用鼠标操作方法
click()
send_keys()
下拉选择框要引入Select:from selenium.webdriver.support.ui import Select
select=Select(driver.find_element_by_xpath(//input(@class=“good”)//input(text()=“美丽”)
select.select_by_vision_text()
鼠标事件右击需要引入ActionChains类
from selenium.webdriver.common.action_chains import ActionChains
ActionChains(driver).context_click(right).perform() //右击
class Name(unittest.TestCase):
def setUp(self):
self.driver=webdriver.Firefox()
def tearDown(self):
self.driver.quit()
def test1(self):
pass
if __name__=__main__:
unittest.main() //使用unittest的测试套在类里面的函数要以test开头
//手动装载测试套
suite=unittest.TestTuite()
suite.addTest(Name("test1")) //单个用例
L=[(Name("test1"),Name("test2")]
suite.addTests(L)//多个用例
runner=unittest.TextTestRunner()
runner.run(suite)
一般使用文本断言的多
try:
self.assertEqual(text,"文本")
print("success")
except BaseException:
print("defeat")
test_dir="./te" //找到目录
discover=discover.defaultTestLoader.discover(test_dir,pattern="te*.py")
runner=unittest.TextTestRunner()
runner.run(discover)
生成测试报告
下载HTMLTestRunner文件到lib目录下
report_dir="./test-report"
now=time.strftime(%Y-%m-%d %H_%M_%S)
report_name=report_dir+"/"+now+"result.html"
with open(report_name,"wb") as f:
runner.HTMLTestRunner(stream=f,title="测试用例”,description="用例执行情况")
runner.run(discover)
f.close()
注意事项:
1,遇到ifream框架要先进入框架
driver.swtich_to.fream(“ID”) //进入框架
driver.switch_to.default_content() //回到当前界面
2,xpath定位要唯一
import threading
def music(a):
return(a)
def movie(b):
return(b)
L=[]
l1=threading.Thread(target=music,args=("好运来",))
L.append(l1)
l2=threading.Thread(target=movie.args=("摔跤吧爸爸",))
L.append(l2)
if __name__=__main__
for i in L:
i.start()
for i in L:
i.join()
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import excepted_comditions as EC
from selenium.webdriver.commom.by import By
WebDriverWait(driver,10,0.5).until(EC.presence_of_element_located((By.XPATH,xpath)))
iter(list),可以把可迭代对象转变为迭代器
4,减少中间不必要的加载步骤