Python+selenium自动化测试实战代码

基本unittest框架结构

import unittest
from selenium import webdriver
import time
from selenium.common.exceptions import NoSuchElementException

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()

时间控件的选择

 #时间控件:输入起始时间为2019-01-12,结束时间为2019-01-13
        # 起始时间选择
        js = "document.getElementById('starttime').removeAttribute('readonly')"
        driver.execute_script(js)
        driver.find_element_by_id("starttime").clear()
        driver.find_element_by_id("startTime").send_keys("2019-01-12")
        sleep(3)

        # 结束时间选择
        js = "document.getElementById('endTime').removeAttribute('readonly')"
        driver.execute_script(js)
        driver.find_element_by_id("endTime").clear()
        driver.find_element_by_id("endTime").send_keys("2019-01-13")
        sleep(3)

下拉框的选择

find_element_by_xpath()

查询页面,若查询结果不存在,使用NoSuchElementException异常

         try:
           orderid_result is  None
         except NoSuchElementException:
            print("没有查询到符合当前查询条件的订单")
        else:
        print("查询到符合当前查询条件的订单")

推荐元素定位指令:find_element_by_xpath()

使用这个指令定位可以非常精确。在Firefox浏览器中添加xpath finder组件。
在这里插入图片描述
打开F12,选中需要定位的元素,点击右键>>复制>>Xpath,即可复制,非常好用。
Python+selenium自动化测试实战代码_第1张图片

如果元素定位不到,则考虑是否是此元素在不同的iframe框架中,若在不同的框架中,则需要先进入当前框架才能定位到元素。

Python+selenium自动化测试实战代码_第2张图片

具体切换iframe指令为:

iframe = driver.find_element_by_id("mainFrame")
driver.switch_to.frame("iframe"))#切换frame

你可能感兴趣的:(Python,selenium)