01 2022 档案

摘要:打包所有用到的依赖包: 在控制台中输入:pip freeze > requirements.txt 安装所有用到的依赖包: 在控制台中输入:pip install -r requirements.txt 阅读全文
posted @ 2022-01-25 22:04 2orange 阅读(472) 评论(0) 推荐(0)
摘要:import pymysql con = pymysql.connect(host="xxxx", port=xxx, user="root", password="123456",charset="utf8",cursorclass=pymysql.cursors.DictCursor, data 阅读全文
posted @ 2022-01-14 21:28 2orange 阅读(162) 评论(0) 推荐(0)
摘要:https://www.newadmin.cn/archives/304 阅读全文
posted @ 2022-01-12 14:24 2orange 阅读(94) 评论(0) 推荐(0)
摘要:如果前置条件中要给用例传递数据怎么办:设置前后置条件时,yield出来 注意点:如果要在前置条件中传递数据给用例方法,那么不能使用在上面@pytest.mark.userfixtures() 这种方法给用例添加前置后置 from selenium import webdriver import py 阅读全文
posted @ 2022-01-11 23:48 2orange 阅读(369) 评论(0) 推荐(0)
摘要:""" 无论哪个级别的前置后置条件,添加时有两种方式: 方式一:一种是在定义用例方法时添加,如:def test_demo_01(self, case_fixture, class_fixture) 方式二:一种是在用例类的上面添加,如:@pytest.mark.usefixtures("class 阅读全文
posted @ 2022-01-11 23:37 2orange 阅读(238) 评论(0) 推荐(0)
摘要:pytest中的前置后置分为4个级别:- 用例级别 - 用例类级别 - 用例模块(文件)级别- 会话(程序)级别 pytest中设置前后置条件用@pytest.fixture() 为方便管理,pytest中前置后置条件的设置可以放到conftest.py文件中(就是这个名字,且和运行文件同级别),测 阅读全文
posted @ 2022-01-11 23:26 2orange 阅读(1278) 评论(0) 推荐(0)
摘要:pytest中使用@pytest.mark.parametrize来实现数据驱动,给用例方法传参 注意点:要么按照unittest的规则来写,数据驱动、前置后置都用unittest中的要么按照pytest的规则来写,数据驱动、前置后置都用pytest中的;pytest编写用例,不要使用ddt,不兼容 阅读全文
posted @ 2022-01-11 16:04 2orange 阅读(60) 评论(0) 推荐(0)
摘要:pytest中直接用assert即可断言,根据assert后面表达式的结果是True还是False来决定断言是否通过 python中数据的布尔值:非零为True; None,False, 0,[],(),{},set()为False 阅读全文
posted @ 2022-01-11 14:34 2orange 阅读(39) 评论(0) 推荐(0)
摘要:unittest中的用例执行是按ASCII码来排序的 pytest中的用例执行:文件名称按ASCII码排序,文件内根据定义的方法的先后顺序,从上到下执行 阅读全文
posted @ 2022-01-11 08:41 2orange 阅读(44) 评论(0) 推荐(0)
摘要:1、元素定位表达式是否有误 2、等待时间没有设置,代码执行速度快于页面加载速度 3、定位的元素处于iframe框架中,需要先切换到iframe框架中 4、定位的元素处于新窗口中,但当前的窗口句柄依旧是原来的窗口,需要先切换窗口 5、用于定位的元素特征是动态变化的,需要换一种定位方式或特征 阅读全文
posted @ 2022-01-09 12:32 2orange 阅读(755) 评论(0) 推荐(0)
摘要:一、一些内置的标记@pytest.mark.skip,在用例方法上使用可以跳过该用例的执行 @pytest.mark.xfail,预期不会通过的用例,执行后该用例的结果状态就是xfail,不会按用例未通过处理执行的时候,直接执行,不必像自定义标记中pytest -m 标记名 import pytes 阅读全文
posted @ 2022-01-08 16:32 2orange 阅读(72) 评论(0) 推荐(0)
摘要:1、文件以test_开头或_test结尾,即:test_*.py 或 *_test.py 2、Test开头的类名,其中test开头的方法名 3、直接在模块中test开头的方法名 注: ①pytest是以方法为单位发现用例的,写不写测试用例类根本不重要(即:直接在模块中以test开头的方法(用例)也可 阅读全文
posted @ 2022-01-08 16:06 2orange 阅读(237) 评论(0) 推荐(0)
摘要:基本的启动方式: 方式一:命令行进入到相应的目录后,输入pytest 方式二:pycharm中直接在用例所在文件以pytest方式运行文件 方式三:pycharm中另外创建一个启动文件,import pytest后 pytest.main() 指定执行用例的启动方式: 在命令行中进入到相应的目录下后 阅读全文
posted @ 2022-01-08 15:55 2orange 阅读(122) 评论(0) 推荐(0)
摘要:1、pytest 兼容 unittest,使用unittest写的用例,可以通过pytest去执行2、pytest写用例更加简单3、pytest加载用例更加智能4、pytest可以对用例做分类管理,执行用例更加的灵活5、pytest支持的插件非常丰富,功能扩展性强6、pytest用例执行的前置后置处 阅读全文
posted @ 2022-01-08 15:34 2orange 阅读(355) 评论(0) 推荐(0)
摘要:f12-Sources,提示窗口出现时点击暂停按钮,再回到Elements进行定位 阅读全文
posted @ 2022-01-08 13:17 2orange 阅读(284) 评论(0) 推荐(0)
摘要:PO:PageObject 该模式就是为了将 页面的相关操作 和 测试用例的传参、断言等操作 进行隔离,后续如果页面元素、定位方式等发生变化只需要修改页面操作的代码即可,方便维护 每个页面的操作(元素定位、点击、输入内容等)封装在一个模块中 例: import unittest from selen 阅读全文
posted @ 2022-01-08 10:57 2orange 阅读(49) 评论(0) 推荐(0)
摘要:""" 上传文件的两种情况: 一种是通过input框:如果上传文件的元素节点是input标签时可以用这种方法,无需借助winauto中的send_keys方法 一种是通过js上传的:因为点击上传文件后,选择文件的弹窗不是网页的,而是电脑的系统弹窗,无法直接用selenium操作选择文件, 所以要借助 阅读全文
posted @ 2022-01-07 23:37 2orange 阅读(106) 评论(0) 推荐(0)
摘要:import time from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.baidu.com/") # 通过js打开一个新窗口 js = """ window.open("https: 阅读全文
posted @ 2022-01-07 23:11 2orange 阅读(262) 评论(0) 推荐(0)
摘要:import time from selenium import webdriver from selenium.webdriver.common.by import By driver = webdriver.Chrome() driver.get("https://www.12306.cn/in 阅读全文
posted @ 2022-01-07 22:52 2orange 阅读(648) 评论(0) 推荐(0)
摘要:import time from selenium import webdriver from selenium.webdriver.common.by import By driver = webdriver.Chrome() driver.get("https://www.12306.cn/in 阅读全文
posted @ 2022-01-07 22:43 2orange 阅读(68) 评论(0) 推荐(0)
摘要:import time from selenium import webdriver from selenium.webdriver.common.by import By driver = webdriver.Chrome() driver.get('https://www.12306.cn/in 阅读全文
posted @ 2022-01-07 22:32 2orange 阅读(430) 评论(0) 推荐(0)
摘要:import time from selenium import webdriver from selenium.webdriver.common.by import By driver = webdriver.Chrome() driver.get('https://www.12306.cn/in 阅读全文
posted @ 2022-01-07 14:58 2orange 阅读(130) 评论(0) 推荐(0)
摘要:import time from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys driver = webdri 阅读全文
posted @ 2022-01-07 13:25 2orange 阅读(92) 评论(0) 推荐(0)
摘要:import time from selenium import webdriver from selenium.webdriver import ActionChains from selenium.webdriver.common.by import By from selenium.webdr 阅读全文
posted @ 2022-01-07 10:21 2orange 阅读(774) 评论(0) 推荐(0)
摘要:import time from selenium import webdriver from selenium.webdriver import ActionChains from selenium.webdriver.common.by import By from selenium.webdr 阅读全文
posted @ 2022-01-06 23:20 2orange 阅读(300) 评论(0) 推荐(0)
摘要:import time from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.wait import WebDriverWait from 阅读全文
posted @ 2022-01-06 20:02 2orange 阅读(350) 评论(0) 推荐(0)
摘要:import time from selenium import webdriver from selenium.webdriver import ActionChains from selenium.webdriver.common.by import By from selenium.webdr 阅读全文
posted @ 2022-01-06 15:12 2orange 阅读(791) 评论(0) 推荐(0)
摘要:import time from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver import ActionChains driver = webdriver. 阅读全文
posted @ 2022-01-06 13:46 2orange 阅读(653) 评论(0) 推荐(0)
摘要:由于新窗口的打开可能需要一定时间,为了确保成功切换到新窗口(的句柄),在切换窗口句柄前,先设置显式等待 注:这里设置的显式等待如:WebDriverWait(driver,5,0.5).until(EC.new_window_is_opened(start_window)),其中传入的参数start 阅读全文
posted @ 2022-01-06 09:52 2orange 阅读(130) 评论(0) 推荐(0)
摘要:import time from selenium import webdriver from selenium.webdriver.common.by import By driver = webdriver.Chrome() driver.get('https://www.baidu.com/' 阅读全文
posted @ 2022-01-06 09:32 2orange 阅读(73) 评论(0) 推荐(0)
摘要:setUp():每个测试case运行之前运行一次tearDown():每个测试case运行完之后运行一次setUpClass():必须使用@classmethod 装饰器, 所有case运行之前只运行一次tearDownClass():必须使用@classmethod装饰器, 所有case运行完之后 阅读全文
posted @ 2022-01-05 22:13 2orange 阅读(185) 评论(0) 推荐(0)
摘要:import time from selenium import webdriver driver = webdriver.Chrome() driver.get("某个会有弹窗的网址") # 关于alert弹框的切换 alert = driver.switch_to.alert # 点击确认 al 阅读全文
posted @ 2022-01-05 09:49 2orange 阅读(57) 评论(0) 推荐(0)
摘要:有时,在网页上 f12-elements-ctrl+f 输入xpath语句可以定位到目标元素,但在selenium中却无法定位到,可能是因为该元素在另一个iframe框架中 import time from selenium import webdriver from selenium.webdri 阅读全文
posted @ 2022-01-05 09:40 2orange 阅读(254) 评论(0) 推荐(0)
摘要:1、页面元素的属性 from selenium import webdriver from selenium.webdriver.common.by import By driver = webdriver.Chrome() driver.get('http://www.baidu.com/') i 阅读全文
posted @ 2022-01-04 16:30 2orange 阅读(80) 评论(0) 推荐(0)
摘要:1、强制等待 from selenium import webdriver from selenium.webdriver.common.by import By import time driver = webdriver.Chrome() driver.get('https://mail.qq. 阅读全文
posted @ 2022-01-04 15:52 2orange 阅读(143) 评论(0) 推荐(0)
摘要:1、常用的路径表达式 2、绝对定位和相对定位 绝对路径:从根节点html开始 相对路径:每次只需从第一个已经找到的节点开始 绝对路径的劣势:如果前端经常变化,如增加了div,表达式下次就不能用了 3、谓语 谓语用来查找某个特定的节点或者包含某个指定的值的节点 谓语被嵌在方括号中 ① 索引取值 找到多 阅读全文
posted @ 2022-01-04 14:54 2orange 阅读(246) 评论(0) 推荐(0)
摘要:from selenium import webdriver from selenium.webdriver.common.by import By import time driver = webdriver.Chrome() driver.get(url="http://www.baidu.co 阅读全文
posted @ 2022-01-04 13:29 2orange 阅读(109) 评论(0) 推荐(0)
摘要:import time from selenium import webdriver driver = webdriver.Chrome() driver.get("http://www.baidu.com") # 获取当前页面的url地址 print(driver.current_url) # 获 阅读全文
posted @ 2022-01-04 10:41 2orange 阅读(142) 评论(0) 推荐(0)
摘要:import time from selenium import webdriver # 创建一个driver对象,启动一个浏览器 driver = webdriver.Chrome() # 访问页面 driver.get("https://www.baidu.com") # 窗口最大化 # dri 阅读全文
posted @ 2022-01-04 10:36 2orange 阅读(51) 评论(0) 推荐(0)
摘要:1、DOM “文档对象模型(Document Object Model,简称DOM) DOM提供了对整个文档的访问模型,将文档作为一个树形结构,树的每个结点表示了一个HTML标签或标签内的文本项 将HTML或XML文档转化为DOM树的过程称为解析(parse)。HTML文档被解析后,转化为DOM树, 阅读全文
posted @ 2022-01-04 10:17 2orange 阅读(150) 评论(0) 推荐(0)
摘要:<!DOCTYPE html> <!--声明文档类型--> <html lang="en"> <!--html标签对开头--> <head> <!--head标签对开头--> <meta charset="UTF-8"> <title>天马行空</title></head> <!--head标签对结 阅读全文
posted @ 2022-01-04 09:30 2orange 阅读(28) 评论(0) 推荐(0)