基本unittest框架结构
import unittest
from selenium import webdriver
import time
class PythonTest(unittest.Testcase):
#setUp类,在用例执行之前执行
@classmethod
def setUpClass(cls):
cls.driver = webdriver.Chrome()# 打开谷歌浏览器
driver = cls.driver
driver.implicitly_wait(10)# 设置隐形等待时间
driver.maximize_window()# 最大化窗口
driver.get("url") # 进入系统
#测试用例
def test_python_selenium(self):
#tearDown类,最后执行,一般就是关闭浏览器的指令
@classmethod
def tearDownClass(cls):
cls.driver.close()
#程序入口,不用搞懂为什么,记住就行
if __name__ == "__main__":
unittest.main()
登录界面
输入用户名、密码、验证码,点击登录按钮登录
driver.find_element_by_id("用户名id").send_keys("用户名")
driver.find_element_by_id("密码id").send_keys("密码")
driver.find_element_by_id("验证码id").send_keys("验证码")
driver.find_element_by_class_name("提交按钮").click()
推荐元素定位指令:find_element_by_xpath()
使用这个指令定位可以非常精确。在Firefox浏览器中添加xpath finder组件。
打开F12,选中需要定位的元素,点击右键>>复制>>Xpath,即可复制,非常好用。
如果元素定位不到,则考虑是否是此元素在不同的iframe框架中,若在不同的框架中,则需要先进入当前框架才能定位到元素。
具体切换iframe指令为:
iframe = driver.find_element_by_id("mainFrame")
driver.switch_to.frame("iframe"))#切换frame