Par*_*rde 7 node.js playwright
我在页面上输入了 ID 为“email30”的文本字段,我正在尝试从 Playwright 读取它的值
let dd_handle = await page.$("#email30");
let value = await dd_handle.getAttribute("value");
Run Code Online (Sandbox Code Playgroud)
但是它返回“”,尽管我在输入文本中有一个值。当我检查时,我也没有看到 value 属性设置为当前值。
下面的普通 JS 代码给了我正确的值
document.getElementById("email30").value
Run Code Online (Sandbox Code Playgroud)
不确定如何从剧作家框架中读取价值。任何人都可以请指教吗?他们的文件在这里完全没有帮助。
the*_*ton 12
如何使用剧作家/木偶操纵者检索输入值存在三个主要趋势。
const value = await page.evaluate(el => el.value, await page.$('input'))
Run Code Online (Sandbox Code Playgroud)
const value = await page.$eval('input', el => el.value)
Run Code Online (Sandbox Code Playgroud)
page.evaluate 和 Element.getAttribute
const value = await page.evaluate(() => document.querySelector('input').getAttribute('value'))
Run Code Online (Sandbox Code Playgroud)
前两个将返回相同的结果,性能非常相似,我无法举出一个例子,当我们可以偏爱另一个时(也许一个:一个$eval更短)。Element.getAttribute如果您在评估之前操作输入的值并且想要检索新值,则不建议使用第三个 with 。它将始终返回原始属性值,在大多数情况下它是一个空字符串。这是JavaScript中属性与属性值的主题。
但是page.evaluate,Element.getAttribute当您需要使用其他提到的方法无法访问的属性时,with会很方便(例如:类名、数据属性、aria 属性等)
好的,终于按照代码为我完成了这项工作!
const value = await page.$eval("#email30", (el) => el.value);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5572 次 |
| 最近记录: |