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

posted @ 2024-03-21 10:57  测试_老姜  阅读(36)  评论(0)    收藏  举报