如何在Playwright/C#中用GetAttributeAsync获取元素value值?
解决Playwright/C#获取文本框实时value值的问题
直接使用Playwright专为输入元素设计的
InputValueAsync()方法,可直接获取输入框的实时值:var tValue = await locator.InputValueAsync() ?? "";如果需要更通用的DOM属性读取方式(适用于非输入元素的其他DOM属性),可以通过
EvaluateAsync执行JS代码直接读取DOM元素的property:var tValue = await locator.EvaluateAsync<string>("el => el.value") ?? "";
问题根源
Selenium的GetDomProperty("value")读取的是DOM元素的实时property(用户输入后的值会同步更新到这里),而Playwright的GetAttributeAsync("value")读取的是HTML标签上的初始attribute——多数场景下,用户输入文本后,HTML里的value属性不会自动更新,因此返回空值或初始默认值。而type、class这类静态属性,HTML标签值与DOM property保持一致,所以GetAttributeAsync能正常获取。
内容的提问来源于stack exchange,提问作者Kev
相关产品推荐
相关产品推荐

