playwright


created: '2024-04-27 ’

定位策略语法
IDpage.locator("#id")
类名page.locator(".className")
标签page.locator("tagName")
属性选择器page.locator("div[attribute='value']")
组合选择器page.locator("div > span")
多类名page.locator(".class1.class2")
通配符选择器page.locator("*")
选择器列表page.locator("div, span")
属性包含page.locator("[attribute*='value']")
属性开始于page.locator("[attribute^='value']")
属性结束于page.locator("[attribute$='value']")
属性包含单词page.locator("[attribute~='value']")
属性精确匹配page.locator("[attribute]")
nth 元素page.locator("div:nth-of-type(2)")
子元素page.locator("div >> span")
兄弟元素page.locator("div + span")
后代元素page.locator("div span")
选择器和文本page.locator("span:has-text('text')")
选择器或文本page.locator("span:text('text')")
角色page.locator("role=button")
布尔属性page.locator("input[checked]")
包含文本page.locator("span:has-text('text')")
精确匹配文本page.locator("span:text-is('text')")
包含部分文本page.locator("span:has-text('partial text')")
精确匹配部分文本page.locator("span:text-is('exact text')")
定位方法名称描述示例
getByRole根据元素的角色(role)属性来定位page.getByRole('button')
getByLabel根据元素的 label 或相关联的 label 元素的文本来定位page.getByLabel('Username')
getByPlaceholder根据元素的 placeholder 属性来定位page.getByPlaceholder('Enter password')
getByTestId根据元素的 data-testid 或类似的自定义数据属性来定位page.getByTestId('product-id')
getByAltText根据元素的 alt 文本来定位page.getByAltText('image description')
getByTitle根据元素的 title 属性来定位page.getByTitle('Download')
getByValue根据输入元素的值来定位page.getByValue('example')
getByText根据元素的可见文本来定位page.getByText('Sign in')
getByDisplayValue根据输入元素的显示值来定位page.getByDisplayValue('example')
getBySelectText根据 <select> 元素中选中的文本来定位page.getBySelectText('Option 1')
getByTooltipText根据元素的 tooltip 文本来定位page.getByTooltipText('Add to cart')
getByURL根据元素的 href 属性中的 URL 片段来定位page.getByURL('/path/*')
getByButtonText根据按钮元素的文本来定位page.getByButtonText('Submit')
getByInputValue根据输入元素的值来定位page.getByInputValue('example')
断言方法描述示例
expect(page).to_have_title()确保页面具有给定的标题。expect(page).to_have_title(re.compile(r".*checkout"))2
expect(page).not_to_have_title()确保页面不具有给定的标题。expect(page).not_to_have_title("Unexpected Title")
expect(page).to_have_url()确保页面导航到给定的 URL。expect(page).to_have_url(re.compile(".*checkout"))2
expect(page).not_to_have_url()确保页面没有导航到给定的 URL。expect(page).not_to_have_url("http://example.com")
expect(locator).to_be_checked()验证复选框是否被选中。expect('#checkbox').to_be_checked()
expect(locator).to_be_disabled()验证元素是否被禁用。expect('#submit').to_be_disabled()
expect(locator).to_be_editable()验证元素是否可编辑。expect('#input').to_be_editable()
expect(locator).to_be_empty()验证容器是否为空。expect('#table').to_be_empty()
expect(locator).to_be_enabled()验证元素是否启用。expect('#button').to_be_enabled()
expect(locator).to_be_focused()验证元素是否获得焦点。expect('#input').to_be_focused()
expect(locator).to_be_hidden()验证元素是否隐藏。expect('#element').to_be_hidden()
expect(locator).to_be_visible()验证元素是否可见。expect('#element').to_be_visible()
expect(locator).to_contain_text()验证元素是否包含指定的文本。expect('#element').to_contain_text('Text')
expect(locator).to_have_attribute(attributeName)验证元素是否具有指定的属性。expect('#element').to_have_attribute('class')
expect(locator).to_have_class(className)验证元素是否具有指定的类名。expect('#element').to_have_class('class-name')
expect(locator).to_have_count(count)验证元素个数是否与期望值相等。expect('.element').to_have_count(5)
expect(locator).to_have_css(cssProperty)验证元素是否具有指定的CSS属性。expect('#element').to_have_css('color', 'blue')
expect(locator).to_have_id(id)验证元素是否具有指定的ID。expect('#element').to_have_id('my-id')
expect(locator).to_have_js_property(jsPropertyName)验证元素是否具有指定的JavaScript属性。expect('#element').to_have_js_property('checked')
expect(locator).to_have_text(text)验证元素是否具有指定的文本内容。expect('#element').to_have_text('some text')
expect(locator).to_have_value(value)验证表单元素是否具有指定的值。expect('#element').to_have_value('some-value')
expect(locator).to_have_values(values)验证表单元素是否具有指定的值集合。expect(['#el1', '#el2']).to_have_values(['v1', 'v2'])
expect(page).to_have_title(title)验证页面标题是否与期望值相等。expect(page).to_have_title('expected-title')
expect(page).to_have_url(url)验证页面URL是否与期望值相等。expect(page).to_have_url('expected-url')
expect(api_response).to_be_ok()验证API响应状态码是否为200(OK)。expect(api_response).to_be_ok()
操作(Action)描述示例
page.mouse.click(x, y)在页面上的特定坐标点击。page.mouse.click(100, 100)
page.mouse.dblclick(x, y)在页面上的特定坐标双击。page.mouse.dblclick(100, 100)
page.mouse.down(options)在页面上的特定位置按下鼠标按钮(默认是主按钮)。page.mouse.down()
page.mouse.up(options)在页面上的当前位置释放鼠标按钮。page.mouse.up()
page.mouse.move(x, y, options)将鼠标指针移动到页面上的特定坐标。page.mouse.move(100, 100)
page.mouse.drag(startX, startY, endX, endY, options)将鼠标拖动从一个坐标到另一个坐标。page.mouse.drag(100, 100, 200, 200)
page.mouse.dragAndDrop(source, target, options)从一个元素拖动鼠标到另一个元素。page.mouse.dragAndDrop('.source', '.target')
page.keyboard.down(key)按下键盘上的一个键。page.keyboard.down('Shift')
page.keyboard.up(key)释放键盘上的一个键。page.keyboard.up('Shift')
page.keyboard.type(text, options)在当前键盘焦点所在的元素中输入文本。page.keyboard.type('Hello World')
page.keyboard.press(key, options)按顺序按下一系列键。(例如,可以组合 Shift+Arrow)page.keyboard.press('Shift+ArrowDown')
page.keyboard.insertText(text)将文本直接插入到当前的键盘焦点中,不涉及键盘事件。page.keyboard.insertText('Hello')
page.touchscreen.tap(x, y)在触摸屏幕上的特定坐标进行一次点击。page.touchscreen.tap(100, 100)
page.accessibility.snapshot(options)获取页面的可访问性树的快照。page.accessibility.snapshot()
方法名称描述返回值类型
page.waitForSelector等待页面出现指定的 CSS 选择器。ElementHandle
page.waitForFunction等待页面上的某个条件函数返回 truenull
page.waitForTimeout设置一个等待超时。null
page.waitForURL等待页面的 URL 变为指定的字符串。null
page.waitForNavigation等待页面导航到新 URL。null
page.waitForLoadState等待页面达到特定的加载状态。null
page.waitForEvent等待页面上的某个事件被触发。Event
elementHandle.waitForSelector等待元素内部出现指定的选择器。ElementHandle
elementHandle.waitForElementState等待元素达到特定的状态。ElementHandle
frameLocator.waitForSelector在指定的 iframe 中等待出现 CSS 选择器。ElementHandle
  • 23
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值