13新一代自动化测试神器playwright+python系列课程_playwright网页相关操作
Playwright 网页操作
在Web的UI自动化的测试中,我们通常需要使用一些方法来操作浏览器,今天就跟随学习了解一下。这一篇老姜主要是介绍一下,在自动化测试的时候,我们常见的一些浏览器操作有哪些,老姜将会一一介绍和讲解。
浏览器窗口最大化
驱动浏览器时,目前大部分浏览器启动时会自动最大化的,但是部分浏览器例如chrome浏览器,启动时并没有最大化,那么在这种情况下,可能会导致web页面上的元素相互遮盖,影响元素定位。为了避免这个问题,浏览器驱动后要窗口最大化,playwright框架下可以通过设置 args 参数 --start-maximized 并且设置 no_viewport=True来实现浏览器的窗口最大化
'''
author: 测试-老姜 交流微信:jnc148283
欢迎添加微信,加入学习群共同学习交流。
'''
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch( headless=False, args=['--start-maximized']) #关闭无头模式,设置谷歌浏览器参数
context = browser.new_context(no_viewport=True) #设置no_viewport参数
page = context.new_page()
page.goto("https://www.baidu.com")
指定浏览器窗口的大小
当需要测试软件在不同分辨率的兼容性时,可以设置浏览器在对应分辨率下的大小来执行脚本,这样就避免了调整操作系统分辨率。
playwright框架下可以通过设置 viewport指定窗口大小来实现制定浏览器的窗口大小,viewport 可以在 new_context 或者 new_page 方法中设置,都可生效。
'''
author: 测试-老姜 交流微信:jnc148283
欢迎添加微信,加入学习群共同学习交流。
'''
from playwright.sync_api import sync_playwright
with sync_playwright() as p :
browser = p.chromium.launch(headless=False)
context = browser.new_context(viewport={'width': 1920, 'height': 1080})
page = context.new_page()
page.goto("https://www.baidu.com")
刷新、前进和后退
page.reload() # 刷新
page.go_back() #后退
page.go_forward()#前进
'''
author: 测试-老姜 交流微信:jnc148283
欢迎添加微信,加入学习群共同学习交流。
'''
from playwright.sync_api import Playwright, sync_playwright, expect
playwright = sync_playwright().start()
browser = playwright.chromium.launch(headless=False, args=['--start-maximized']) #默认无头模式,设置浏览器最大化
context = browser.new_context(no_viewport=True) # 创建上下文,相当浏览器于实例化,即打开浏览器
page = context.new_page() # 打开一个新标签页
page.goto("http://127.0.0.1/zentao/user-login-L3plbnRhby8=.html")
page.wait_for_timeout(2000)
ele = page.locator('css=#account')
page.wait_for_timeout(2000)
page.reload() #刷新
page.wait_for_timeout(5000)
ele.type('admin') # 页面刷新后依然可以输入
page.wait_for_timeout(2000)
page.locator('xpath=//*[@name="password"]').fill('Deshifuzhi01')
page.wait_for_timeout(2000)
page.locator('text=登录').last.click()
page.wait_for_timeout(2000)
page.goto('http://127.0.0.1/zentao/tree-browse-1-story-0-all.html')
page.go_back() # 后退
page.wait_for_timeout(5000)
page.go_forward() # 前进
page.wait_for_timeout(10000)
退出浏览器
先关闭上下文,再退出浏览器。
关闭上下文时,上下文所属的页面也会一起关闭。
browser_context.close()
browser.close()

浙公网安备 33010602011771号