Python+selenium自动化测试实践

基本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