1. `text_content`
- 描述:该方法用于获取一个元素及其后代元素中所有能够显示的文本内容,并以字符串形式返回。其中,元素的文本内容包含在 HTML 中的内容和用户无法看到的文本内容,如注释和空格等。
- 示例:通过以下代码获取一个 div 元素及其后代元素中所有能够显示的文本内容:
```
element = page.locator('div')
text = await element.text_content()
```
示例中,使用 `locator` 方法通过 CSS 选择器找到一个 div 元素,然后调用 `text_content` 方法获取该元素及其后代元素中的文本内容,并将其存储在 `text` 变量中。
2. `inner_text`
- 描述:该方法用于获取一个元素的文本内容,并以字符串形式返回。其中,元素的文本内容不包含在 HTML 中的内容和用户无法看到的文本内容,如注释和空格等。
- 示例:通过以下代码获取一个 p 元素的文本内容:
```
element = page.locator('p')
text = await element.inner_text()
```
示例中,使用 `locator` 方法通过 CSS 选择器找到一个 p 元素,然后调用 `inner_text` 方法获取该元素的文本内容,并将其存储在 `text` 变量中。
3. `get_attribute`
- 描述:该方法用于获取一个元素的指定属性的值,并以字符串形式返回。
- 示例:通过以下代码获取一个 a 元素的 href 属性值:
```
element = page.locator('a')
href = await element.get_attribute('href')
```
示例中,使用 `locator` 方法通过 CSS 选择器找到一个 a 元素,然后调用 `get_attribute` 方法获取该元素的 href 属性值,并将其存储在 `href` 变量中。
4. `is_checked`
- 描述:该方法用于判断一个 checkbox 或 radio input 是否被选中,并返回一个布尔值 true 或 false。
- 示例:通过以下代码判断一个 checkbox 元素是否被选中:
```
element = page.locator('input[type="checkbox"]')
checked = await element.is_checked()
```
示例中,使用 `locator` 方法通过 CSS 选择器找到一个 checkbox 元素,然后调用 `is_checked` 方法来判断该元素是否被选中,并将其存储在 `checked` 变量中。
5. `eval_on_selector`
- 描述:该方法可以用来在一个选择器定位到的元素上执行脚本并返回执行结果。其中,可通过参数传递一个用于执行脚本的函数。在该函数中,可以通过 `el` 参数引用选择器匹配到的元素。
- 示例:通过以下代码获取一个 class 名为 `.some-element` 的元素下一个 class 名为 `.child-element` 的元素的文本内容:
```
element = page.locator('.some-element')
result = await element.eval_on_selector('.child-element', '(el) => el.textContent')
```
示例中,使用 `locator` 方法通过 CSS 选择器找到一个 class 名为 `.some-element` 的元素,然后调用 `eval_on_selector` 方法来执行一个函数并作为参数传递给它,此函数中,通过 `el` 参数引用了选择器匹配到的 `.child-element` 元素,然后返回该元素的文本内容,并将其存储在 `result` 变量中。
6. `inner_html`
- 描述:该方法用于获取一个元素的 HTML 内容,并以字符串形式返回。其中,元素的 HTML 内容包括标签和文本。
- 示例:通过以下代码获取一个 div 元素的 HTML 内容:
```
element = page.locator('div')
html = await element.inner_html()
```
示例中,使用 `locator` 方法通过 CSS 选择器找到一个 div 元素,然后调用 `inner_html` 方法获取该元素的 HTML 内容,并将其存储在 `html` 变量中。
7. `is_visible`
- 描述:该方法用于判断一个元素是否可见。如果元素可见,返回 true,否则返回 false。判断一个元素是否可见时,会检查以下几个方面:元素的宽度和高度是否大于 0,元素的 `display`,`opacity` 和 `visibility` 样式是否设置为使元素不可见。
- 示例:通过以下代码判断一个 id 名为 `some-element` 的元素是否可见:
```
element = page.locator('#some-element')
visible = await element.is_visible()
```
示例中,使用 `locator` 方法通过 CSS 选择器找到一个 id 名为 `some-element` 的元素,然后调用 `is_visible` 方法来判断该元素是否可见,并将结果存储在 `visible` 变量中。
8. `is_enabled`
- 描述:该方法用于判断一个元素是否启用,如果元素启用返回 true,否则返回 false。
- 示例:通过以下代码判断 id 名为 `some-element` 的元素是否启用:
```
element = page.locator('#some-element')
enabled = await element.is_enabled()
```
示例中,使用 `locator` 方法通过 CSS 选择器找到一个 id 名为 `some-element` 的元素,然后调用 `is_enabled` 方法来判断该元素是否启用,并将结果存储在 `enabled` 变量中。
以上是 Playwright 中一些方法的详细描述及示例。在实际开发中,可以结合具体的场景和需求选择适合的方法对页面元素进行操作和校验。