webdriver提供了一些简单的操作,比如说对简单对象定位、鼠标操作、键盘操作等,webdriver 还提供了对浏览器的操作和cookie的操作,可以设置窗口大小,可以读取、添加和删除 cookie 信息,方便我们在自动化测试过程中进行功能验证。
2.1.1 浏览器最大化
test_login.py中的代码:
import pytest from time import sleep from selenium import webdriver def test_2(): global driver driver=webdriver.Firefox() driver.get("https://www.baidu.com") # 将浏览器最大化显示 driver.maximize_window() sleep(3) driver.quit()
2.1.2 设置浏览器窗口大小
除了可以设置浏览器窗口的最大化之外,也可以根据需要自主设置浏览器窗口大小
import pytest from time import sleep from selenium import webdriver def test_2(): global driver driver=webdriver.Firefox() driver.get("https://www.baidu.com") # 设置浏览器宽为1500、高为1000 driver.set_window_size(1500,1000) sleep(3) driver.quit()
2.1.3 控制浏览器前进、后退
webdriver 提供了 back()和 forward()方法,对浏览器执行前进和后退的操作
import pytest from time import sleep from selenium import webdriver def test_2(): global driver driver=webdriver.Firefox() url_1 = "https://www.baidu.com" url_2 = "https://www.youdao.com" #访问第一个网址 driver.get(url_1) sleep(5) # 访问第二个网址 driver.get(url_2) sleep(5) #返回到第一个网址 driver.back() sleep(5) #前进到第二个网址 driver.forward() sleep(5) #退出浏览器 driver.quit()
2.2.1获取cookie信息
有时我们需要验证浏览器中是否存在某个 cookie,所以操作cookie来获取cookie的内容
test_login.py代码如下:
import pytest from time import sleep def test_2(): global driver driver=webdriver.Firefox() url_1 = "https://www.baidu.com" #访问百度 driver.get(url_1) sleep(5) #获取所有cookie的信息 cookies=driver.get_cookies() print(cookies) sleep(3) driver.quit()
执行结果如下:
"E:\Program Files\myPytest\venv\Scripts\python.exe" "E:/Program Files/myPytest/test_case/test_login.py" [{'name': 'BIDUPSID', 'value': 'C1D68BB89B682DD4B79B12F76AEB771B', 'path': '/', 'domain': '.baidu.com', 'secure': False, 'httpOnly': False, 'expiry': 3738630861}, {'name': 'PSTM', 'value': '1591147209', 'path': '/', 'domain': '.baidu.com', 'secure': False, 'httpOnly': False, 'expiry': 3738630861}, {'name': 'BAIDUID', 'value': 'C1D68BB89B682DD4521F345CA80E560B:FG=1', 'path': '/', 'domain': '.baidu.com', 'secure': False, 'httpOnly': False, 'expiry': 1622683214}, {'name': 'BD_HOME', 'value': '1', 'path': '/', 'domain': 'www.baidu.com', 'secure': False, 'httpOnly': False}, {'name': 'H_PS_PSSID', 'value': '1423_31325_21081_31069_31605_31271_31715_30823', 'path': '/', 'domain': '.baidu.com', 'secure': False, 'httpOnly': False}, {'name': 'BD_UPN', 'value': '13314352', 'path': '/', 'domain': 'www.baidu.com', 'secure': False, 'httpOnly': False, 'expiry': 1592011214}] . 1 passed in 13.73s
2.2.2 操作cookie
test_login.py代码如下:
import pytest import json def test(): #打开json文件,设置编码格式为utf-8 file=open("data/test.json",encoding='utf-8') #加载json文件 cont=json.load(file) #读取第二组demo中的data数据 data=cont[1]['demo']['data'] #读取第一组name数据 name= cont[1]['name'] #读取第一组age数据 age=cont[0]['age'] #打印相应的值 print(data) print(name) print(age) if __name__ == '__main__': pytest.main(["-sq","test_readData.py"])
执行之后,输出的内容如下:
"E:\Program Files\myPytest\venv\Scripts\python.exe" "E:/Program Files/myPytest/test_case/test_readData.py" 13 admin 10 . 1 passed in 0.04s Process finished with exit code 0
欢迎关注「技术分享交流」公众号 ,如果有建议或者疑问的话,欢迎大家评论留言!