首页 > 解决方案 > 如何使用 CefSharp 访问 html 元素属性

问题描述

这是页面的示例 HTML 段:

<dd class="row market-list_item">..</dd>
<dd class="row market-list_item">..</dd>
   <div class="cell" role="button" data-ember-action data ember-action-3019="3019">..</div>
   <div id="ember3020" class="ember-view cell price-buttons">
      <a role="button" class="price_tick price-button price-button--sell sell" data-ember-action data-ember-action-3021="3021">86.50</a>
      <a role="button" class="price_tick price-button price-button--buy buy" data-ember-action data-ember-action-3021="3022">96.75</a>
   </div>
</dd>

我尝试了以下方法从 dd 元素中的 div 标签中检索元素属性 ember3020 。

var webval = chromeBrowser.EvaluateScriptAsync("(function() { return document.getElementsByClassName(' row market-list_item')[0].children[1].attibutes['id'].value; })();");
var response = webval.Result;
if (response.Success == false || response.Result.ToString() == null)
{
  // Do work here
}

webval.Results = null。我无法获取属性值 :( 我正在尝试获取 id 值 ember3020。数据是动态的,每隔几分钟就会更改一次。所以,我事先不知道 id。

更新:

我解决了这个问题。这就是我发现的。

  1. .attibutes['id'].value 错误。这应该是 .getAttributes('id')
  2. 由于这是获取值的异步调用,因此我需要一个等待进程。这是我发现的有效方法。

https://gist.github.com/amaitland/7a41cc87b88dfcd30e0e

这使我可以在它们准备好时获取值。

标签: javascriptc#htmlwinformscefsharp

解决方案


推荐阅读