首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >木偶师:获取innerHTML

木偶师:获取innerHTML
EN

Stack Overflow用户
提问于 2017-09-26 16:12:11
回答 8查看 57.5K关注 0票数 39

有人知道如何获取元素的innerHTML或文本吗?或者更好;如何单击具有特定innerHTML的元素?这就是它与普通JavaScript的工作方式:

代码语言:javascript
运行
复制
var found = false
$(selector).each(function() {
    if (found) return;
    else if ($(this).text().replace(/[^0-9]/g, '') === '5' {
        $(this).trigger('click');
        found = true
    }
});

提前感谢您的帮助!

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2017-10-04 13:11:45

我就是这样得到innerHTML的:

代码语言:javascript
运行
复制
page.$eval(selector, (element) => {
  return element.innerHTML
})
票数 46
EN

Stack Overflow用户

发布于 2020-03-16 21:18:49

返回元素的innerHTML

可以使用以下方法返回元素的innerHTML

页.$eval()

代码语言:javascript
运行
复制
const inner_html = await page.$eval('#example', element => element.innerHTML);

page.evaluate()

代码语言:javascript
运行
复制
const inner_html = await page.evaluate(() => document.querySelector('#example').innerHTML);

$() / elementHandle.getProperty() / jsHandle.jsonValue()

代码语言:javascript
运行
复制
const element = await page.$('#example');
const element_property = await element.getProperty('innerHTML');
const inner_html = await element_property.jsonValue();

单击具有特定innerHTML的元素

可以使用以下方法根据元素中包含的innerHTML单击元素:

$eval()

代码语言:javascript
运行
复制
await page.$$eval('.example', elements => {
  const element = elements.find(element => element.innerHTML === '<h1>Hello, world!</h1>');
  element.click();
});

page.evaluate()

代码语言:javascript
运行
复制
await page.evaluate(() => {
  const elements = [...document.querySelectorAll('.example')];
  const element = elements.find(element => element.innerHTML === '<h1>Hello, world!</h1>');
  element.click();
});

page.evaluateHandle() / elementHandle.click()

代码语言:javascript
运行
复制
const element = await page.evaluateHandle(() => {
  const elements = [...document.querySelectorAll('.example')];
  const element = elements.find(element => element.innerHTML === '<h1>Hello, world!</h1>');
  return element;
});

await element.click();
票数 29
EN

Stack Overflow用户

发布于 2017-12-27 14:55:09

这应该适用于木偶技师:)

代码语言:javascript
运行
复制
const page = await browser.newPage();
const title = await page.evaluate(el => el.innerHTML, await page.$('h1'));
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46431288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档