CEF3 如何获取document接口遍历元素

chuiweitang3589 2017-07-17 06:51:57
http://blog.csdn.net/foruok/article/details/50799518
mfc中嵌入了一个谷歌内核浏览器, 现在需要获取document接口, 用来遍历网页元素, 不是js的方式, 是直接要C++代码操作.
按照上面的帖子的方法, 实现了CefDOMVisitor类
class DomVisitTestor : public CefDOMVisitor
{
public:
DomVisitTestor();
void TestAccess(CefRefPtr<CefDOMDocument> document);
void TestModify(CefRefPtr<CefDOMDocument> document);

void Visit(CefRefPtr<CefDOMDocument> document) OVERRIDE;

IMPLEMENT_REFCOUNTING(DomVisitTestor);
};

并执行了
m_clientHandler->GetBrowser()->GetMainFrame()->VisitDOM(new ClientDOMVisitor());

但是DomVisitTestor::Visit();始终没有被执行.

毫无头绪, 希望那个大神给指点迷津, 目的就是为了遍历网页元素, 不是用js的方法.
...全文
5943 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
斌_789 2020-01-31
  • 打赏
  • 举报
回复
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); doc.LoadHtml(Html);//填充网页源码 HtmlNode htmlnode = doc.DocumentNode.SelectSingleNode("//div[@class='results']");//获取网页的节点 HtmlAgilityPack.HtmlNodeCollection nodecollection = htmlnode.ChildNodes; for (int i = 0; i < nodecollection.Count; i++) { string result = nodecollection[i].OuterHtml;//遍历节点获取到想要的源码 } 不知道你是不是需要这些,我这个是c#的,希望能帮助下
nogreat 2020-01-30
  • 打赏
  • 举报
回复
我是在app里发送消息,在render里调用,就可以了。
a472544436 2019-11-28
  • 打赏
  • 举报
回复
找到个p,var stm = chromeBrowser.GetSourceAsync().Result;只能这样,分析这个字符串吧
gogusoft 2019-11-16
  • 打赏
  • 举报
回复
有没有DEMO啊
LukeZhaZha 2019-10-05
  • 打赏
  • 举报
回复
请问您现在找到解决方法了吗
chensen8631 2018-11-01
  • 打赏
  • 举报
回复 1
据说需要在render主线程调用该方法
小14 2017-12-04
  • 打赏
  • 举报
回复
请问找到方法了吗?

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧