在进行Web自动化测试时,页面对象模型(Page Object Model)一定是绕不开的。 它可以用来描述页面的不同部分,并将其作为对象来进行操作。Playwright也提供了类似的页面对象模型,它包括Browser对象、Page对象和ElementHandle对象等。今天,田辛老师就将几个常用对象简单的介绍一下。
1 Browser对象
Browser
对象是一个代表整个浏览器的对象,我们可以通过Playwright
的launch()
方法来创建。例如,下面的代码片段创建了一个Chrome浏览器的Browser对象:
from playwright.sync_api import Playwright, sync_playwright
with sync_playwright() as playwright:
browser = playwright.chromium.launch()
一旦我们有了Browser对象,我们就可以通过它来创建Page对象了。Page对象代表了浏览器中的一个页面,我们可以在其中执行各种操作,例如导航到不同的URL、输入文本、点击按钮等等。我们可以使用Browser对象的new_page()方法来创建Page对象。例如,下面的代码片段创建了一个新的页面:
page = browser.new_page()
一旦我们有了Page对象,我们就可以开始在其中执行各种操作了。例如,我们可以导航到不同的URL,例如:
page.goto("https://www.baidu.com")
我们也可以使用Page对象来查找页面中的元素,例如:
search_box = page.locator("input[name='q']")
search_box.fill("Playwright Page Object Model")
在上面的代码中,我们使用了Page对象的locator()
方法来查找名为“q”的输入框,并使用fill()
方法向其中输入了一些文本。
此外,Playwright还提供了ElementHandle
对象,它代表了页面中的一个元素。我们可以使用Page
对象的locator()
方法来查找元素,并将其封装在ElementHandle
对象中进行操作。例如:
search_button = page.locator("input[type='submit']")
search_button.click()
在上面的代码中,我们使用了Page
对象的locator()
方法来查找名为“submit”的按钮,并使用click()
方法模拟了用户点击。
除了以上常用的对象之外,Playwright
还提供了其他的对象,例如Frame
对象、Request
对象和Response
对象等等。这些对象的具体使用方法可以参考Playwright的官方文档。
综上所述,Playwright的页面对象模型提供了一个方便的方式来描述页面的不同部分,并将其作为对象来进行操作。我们可以使用Browser对象来创建Page对象,使用Page对象来查找元素,并使用ElementHandle对象来对页面元素进行操作。同时,Playwright还提供了其他的对象来进行更细粒度的操作。熟练掌握这些对象的使用方法,可以帮助我们更高效、更稳定地进行Web自动化测试。