Skip to main content
 首页 » 编程设计

c#之与 awesominum webcontrol 交互

2024年01月24日26birdshome

你能在 awesomium webcontrol 中找到 HTML 元素来做进一步的处理吗?

例如,我可以使用以下方法在 Watin 中找到必要的元素(甚至元素集合):

Link playButton = myie.ElementOfType<Link>(Find.ById("myid")); // find link (<a>) 
Div test = myie.Div(Find.ById("audio")); // find div (<div>) 

找到后 - 您可以提取该元素的多个属性

string classname = playButton.ClassName; // alternatively -> inner text, link, id, class and all bucket of other properties 

我如何在 awesomium 中执行此操作?它有内置的 DOM 解析器来操作网站控件吗? (div、链接、表格等。)

到目前为止我只能找到 javascript 执行命令但这不是我要找的..

另外,我想知道如何将网页的 HTML 保存为字符串(在 awesomium 中)?

string mysite = webControl1.SiteHTML.ToString(); // something like this 
// instead of 
string mysite = webControl1.ExecuteJavascriptWithResult("document.documentElement.outerHTML").ToString(); 

编辑:解释

看来 awesomium 本身不支持 HTML 元素解析,所以我的备份计划如下:

  1. 在awesomium中打开网页
  2. 抓取 HTML 到字符串(当前使用:ExecuteJavascriptWithResult())
  3. 将字符串解析为 HTML(当前使用:“HTML Agility pack”)
  4. 做我需要做的(查找元素、集合等)
  5. 根据前面步骤的结果在awesomium中执行JS命令

如果 awesomium 有 DOM 支持,所有这一切都会更容易......但是......好吧......

请您参考如下方法:

JS 技巧怎么样?

public string GetHTML(WebControl control) 
{ 
          return control.ExecuteJavascriptWithResult("document.getElementsByTagName('html')[0].outerHTML"); 
 
} 

干杯!