【问题标题】:Can I use XPath expressions instead of CSS selectors on page.type in Puppeteer?我可以在 Puppeteer 的 page.type 上使用 XPath 表达式而不是 CSS 选择器吗?
【发布时间】:2020-10-13 00:48:37
【问题描述】:

现在的代码:

await page.type('#filterdataTable > div.widget > input', "1234");

我可以使用 XPath 代替这个 CSS 选择器吗?

【问题讨论】:

  • 你试过page.$x("//something_here");吗?
  • 是的...但不适用于 .type 方法。
  • 选择元素,然后使用.type函数。

标签: javascript node.js xpath css-selectors puppeteer


【解决方案1】:

您可以使用page.$x()获取您要选择的元素的ElementHandle

然后您可以使用elementHandle.type()input 字段中输入文本。

const example = await page.$x('//*[@id="filterdataTable"]/div[contains(concat(" ", normalize-space(@class), " "), " widget ")]/input');
await example[0].type('1234');

【讨论】:

    【解决方案2】:

    使用

    const [selector] = await scope.context.currentPage.$x(path);
    await scope.context.currentPage.evaluate(
        (element, value) => element.value = value, selector, text);
    

    xpath 是他的 XML 路径,text 包含您要输入的字符。

    【讨论】:

      猜你喜欢
      • 2018-05-04
      • 2010-09-29
      • 2022-01-04
      • 1970-01-01
      • 2013-07-23
      • 1970-01-01
      • 1970-01-01
      • 2015-03-08
      • 2015-10-12
      相关资源
      最近更新 更多