Cef Browser Wpf 探索 dom,查找元素并更改值
Posted
技术标签:
【中文标题】Cef Browser Wpf 探索 dom,查找元素并更改值【英文标题】:Cef Browser Wpf explore the dom, find elements and change values 【发布时间】:2015-06-21 21:58:51 【问题描述】:还有一篇文章 (CefSharp load a page with browser login)。
我实现了IRequestHandler
接口和不同的方法,特别是GetAuthCredentials
,我在其中显示了一个对话框并恢复用户和密码并将其传递给事件处理程序。
现在我想访问 dom,我得到几个 frameset
和不同的 frames
,我对一个 frame
感兴趣,我知道 name
属性。
在这个frame
中,我需要获取不同类型的input
、select
等列表...
在我的应用程序中,我有一个按钮,用于设置不同 elements
的值,具体取决于它们是否出现在显示的页面上。
问题是我看不到任何获取document
、frames
集合等的方法......
【问题讨论】:
【参考方案1】:CefSharp
不会暴露底层的DOM
,也不太可能看到http://magpcss.org/ceforum/viewtopic.php?f=6&t=10652&p=19533#p16750
最好的办法是使用EvaluateScriptAsync
和javascript Binding
的组合
https://github.com/cefsharp/CefSharp/wiki/Frequently-asked-questions#2-how-do-you-call-a-javascript-method-that-return-a-result https://github.com/cefsharp/CefSharp/wiki/Frequently-asked-questions#3-how-do-you-expose-a-net-class-to-javascript
如果您绝对必须拥有DOM
访问权限并且无法发明解决方案,那么CefGlue
可能是您更好的选择。 (我应该指出,DOM
只能在Render
进程中访问,因此需要通过IPC
将此类调用传递给Browser
进程,因此这不是一项简单的任务)。
【讨论】:
好的,我更了解浏览器的理念,它是……浏览器,但不一定是我需要的,也不一定是我希望在这样的组件中拥有的东西。我将尝试使用 Js 脚本。谢谢以上是关于Cef Browser Wpf 探索 dom,查找元素并更改值的主要内容,如果未能解决你的问题,请参考以下文章