我可以使用XPath表达式代替Puppeteer中page.type上的CSS选择器吗?

时间:2018-09-11 18:02:59

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

现在的代码:

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

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

2 个答案:

答案 0 :(得分: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' );

答案 1 :(得分:0)

使用

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

其中xpath是XML路径,而text是要键入的字符。