locator()可以对元素进行定位,那么有哪些常用的对元素进行操作的方法呢?
元素操作
常用的元素操作方法如下表:
方法 | 说明 |
click() | 单击元素 |
dbclick() | 双击元素 |
fill() | input,textarea这类输入框元素输入值 |
set_input_file() | <input type=file>元素传入文件 |
clear() | input,textarea这类输入框元素清空 |
blur() | 元素取消聚焦 |
focus() | 元素聚焦 |
press() | 元素输入指令,例如press('Enter'),输入回车 |
常用的元素内容获取获取方法如下:
方法 | 说明 |
inner_text() | 获取元素的text文本 |
text_content() | 获取元素的text文本(包括所有后代元素) |
inner_html() | 获取元素的html信息 |
first | 获取第一个元素(有多个元素时) |
nth(index) | 获取对应索引的元素(从0开始) |
last | 获取最后一个元素 |
常用的元素属性方法:
方法 | 说明 |
is_hidden() | 元素是否隐藏,返回bool |
is_visible() | 元素是否可见,返回bool |
is_checked() | 元素是否被勾选,返回bool |
is_enabled() | 元素是否可操作,返回bool |
is_disabled() | 元素是否不可操作,返回bool |
is_editable() | 元素是否可编辑,返回bool |
bounding_box() | 返回元素字典点位坐标,例如:{'x':10,'y':30,'width':20,'height':40},x和y代表元素左上角的坐标信息,width和height分别代表元素的宽度和高度 |
使用以上方法可以对元素实现常用的基本操作,例如:
with sync_playwright() as p:
browser = p.chromium.launch(headless=False)
context = browser.new_context()
page = context.new_page()
page.goto('https://www.baidu.com/')
element = page.locator('input[id=kw]')
# 清空
element.clear()
# 输入信息
element.fill('关键字')
# 点击回车
element.press('Enter')
# 多元素操作
print('坐标信息:', element.first.bounding_box())
print('是否可见:', element.is_visible())