【playwright】自动化框架python教程(十三)[locator/query_selector/wait_for_selector..等方法]

page.locator()/page.locator().all()

  • 返回类型
  • page.locator() 返回一个 locator 对象表示所有匹配选择器的元素集合,而不是单个元素。
  • 惰性执行
    • 创建 locator 对象时并不会立即执行任何操作,只有当你调用 locator 上的方法时(如 .click().fill().nth() 等)才会执行相应的操作。

  • 操作方法
    • page.locator() 返回的对象提供了许多方法,如 .click().fill().press().evaluate() 等,可以直接在 locator 对象上调用这些方法来操作元素。

  • 多元素操作
    • 可以使用 .all() 获取所有匹配的元素,或者使用 .nth(index) 来获取特定索引的元素。如果.all()找不到时,返回空列表[]。
  • Locator执行方法时,比如locator.click()
    • 如果元素查询不到时,提示操作超时异常时。如playwright._impl._errors.TimeoutError: Locator.click: Timeout 30000ms exceeded.E Call log:E           waiting for locator("div[id=\"suggestion-list123\"] > *")

-----------------------------------------------------------------------------------------------------------

wait_for_element_state()

你可以使用 Locator 的 wait_for_element_state() 方法来等待元素达到特定的状态。这个方法支持的状态有:

visible: 等待元素变得可见(即不透明、宽度和高度大于0,并且其父级节点也是可见的)。
hidden: 等待元素变为隐藏(即不可见或不在DOM中)。
enabled: 等待元素变为启用状态(即没有被禁用属性标记)。
disabled: 等待元素变为禁用状态。
editable: 等待元素变为可编辑状态(例如文本框或内容可编辑的div)。
detached: 等待元素从DOM中移除。

总结


wait_for_element_state(state, timeout=None) 是用于等待元素达到特定状态的方法,支持的状态包括:visible, hidden, enabled, disabled, editable, 和 detached。
如果你需要立即检查某个元素的状态而不需要等待,可以使用相应的 is_* 方法,如 is_visible(), is_enabled() 等。

-----------------------------------------------------------------------------------------------------------

page.wait_for_selector()

page.wait_for_selector() 方法主要用于等待页面上的某个元素变得可用或可见。它会阻塞脚本执行,直到满足指定条件为止。

方法签名
page.wait_for_selector(selector, state=None, timeout=None)
参数说明
  • selector: CSS 选择器字符串,用于匹配页面上的元素。
  • state (可选): 指定元素的状态。可以是 'attached''detached''visible''hidden'。默认为 'visible'不支持“enable”状态。
状态 含义
"visible" 默认值,等待元素可见。
"hidden" 等待元素隐藏(存在于 DOM 中但不可见,或从 DOM 中移除)。
"attac
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值