python自动化测试——浏览器操作和cookie操作

1 前言

       webdriver提供了一些简单的操作,比如说对简单对象定位、鼠标操作、键盘操作等,webdriver 还提供了对浏览器的操作和cookie的操作,可以设置窗口大小,可以读取、添加和删除 cookie 信息,方便我们在自动化测试过程中进行功能验证。

 

2 操作举例

2.1 浏览器操作

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 Cookie操作

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

 

 

 

 

 


欢迎关注「技术分享交流」公众号 ,如果有建议或者疑问的话,欢迎大家评论留言!

python自动化测试——浏览器操作和cookie操作_第1张图片

 

 

 

 

 

你可能感兴趣的:(python自动化测试,python,selenium)