如何在Microsoft Playwright中从定位器页面对象获取CSS字符串值
从Playwright定位器中提取CSS选择器字符串
Playwright的Locator对象本身不会直接暴露你传入的原始CSS选择器(你尝试的_selector是内部私有属性,行为不稳定且可能返回空值,官方也不建议依赖这类内部属性)。最可靠的解决方式是在页面对象类中单独存储选择器字符串,再基于它创建定位器。
修改后的页面对象类代码:
export class PageObjects{ constructor(page){ // 单独存储CSS选择器字符串 this.obj1Selector = '#table tbody tr'; // 基于存储的选择器创建定位器 this.obj1 = page.locator(this.obj1Selector); } }
测试代码中获取选择器:
test('Get Values and header names from a table', async({page})=> { const pageObjects = new PageObjects(page); // 直接获取预先存储的选择器字符串 const cssString = pageObjects.obj1Selector; console.log(cssString); // 输出: #table tbody tr })
为什么不推荐依赖内部属性?
_selector是Playwright的内部实现细节,没有公开API保证它的行为,后续版本可能随时改变。- 如果定位器是通过
filter()、nth()等方法组合生成的,_selector可能无法返回你最初传入的原始选择器,甚至返回空值。
内容的提问来源于stack exchange,提问作者Scott Littleton
相关产品推荐
相关产品推荐

