import unittest
import time
from selenium import webdriver
from ddt import data,ddt,unpack
@ddt
class forTestTest(unittest.TestCase):
# 因为是在函数内执行的浏览器操作,在函数执行完毕之后,程序内所有的步骤都结束了,关于这段程序的进程也就结束了,
# 浏览器包含在内;如果将浏览器全局后,打开浏览器不在函数内部,函数里面的程序执行完是不会关闭浏览器的。
chromedriver = "C:\Program Files\Google\Chrome\Application\chromedriver.exe"
driver = webdriver.Chrome(chromedriver)
# 用例的初始化
def setUp(self):
self.driver.get('http://test.51qdl.com//')
self.driver.maximize_window()
self.driver.find_element_by_link_text('登录').click()
def tearDown(self):
self.driver.quit()
@data(['admin',"Woqu((("])
@unpack
def test_one(self,account,psw):
# 获取当前所有页面窗口的句柄
windows = self.driver.window_handles
# 切换至最新打开的窗口
self.driver.switch_to.window(windows[-1])
#定位账户名输入框并输入账户名
self.driver.find_element_by_name('username').send_keys(account)
# 定位密码输入框并输入密码
self.driver.find_element_by_name("password").send_keys(psw)
time.sleep(1)
#定位登录按钮并点击
self.driver.find_element_by_xpath("/html/body/div[2]/div/div/div[2]/div[2]/form/div[4]/button").click()
time.sleep(1)
#元素定位,采用属性名定位
# self.driver.find_element_by_xpath("//img[contains(@ng-src,'http://wx.qlogo.cn/mmopen/JVDECnNjedF7rdyjF2QTouFvjxY2nHfsKrfgY80B9wePLvkUG0xjDLJxFw6SMibkukWxiakaF5j24aamXerarSgS5UgqDzueQb/0')]").click()
#采用文本定位
# self.driver.find_element_by_xpath("//div[text()='51驱动力']").click()
#采用元素定位,属性名称,文本信息结合的定位方式
self.driver.find_element_by_xpath("//div[contains(text(),'51驱动力')]").click()
time.sleep(1)
if __name__ == '__main__':
unittest.main()
部分参考文献:
https://www.bilibili.com/video/BV1da4y1e7mx?from=search&seid=5692228652610469615