c# - 在 awesomium 中执行 javascript 来点击一个 div

标签 c# javascript winforms awesomium

我在 C# winforms 应用程序中使用 Awesomium 点击网页内的一个 div。

如果您直接在 google chrome 中输入以下脚本,它就可以正常工作:

javascript: document.getElementById('ac_play').click();

但是当我尝试使用以下任一方法在 awesomium 中执行它时:

webControl1.ExecuteJavascript("document.getElementById('ac_play').click();");

或者这个:

webControl1.LoadURL("javascript: document.getElementById('ac_play').click();");

它不起作用。这让我想到 - Awesomium 是否支持“div clicks”?或者可能还有其他原因导致它不起作用?

我也试过执行代码:

  • 在 LoadCompleted 事件上(以确保页面已完全加载)
  • 通过在“addressBox1”(原生 awesomium“地址栏”控件)中手动键入脚本

像往常一样 - 没有任何效果。

编辑:

我已经在 GeckoFX 中测试了相同的 javascript,但它在那里也不起作用。有什么解决方法吗?

EDIT2

标准 WebBrowser 控件完美执行脚本! (虽然它使用的是 IE5 左右..这就是为什么我希望看到 Awesomium 解决方案起作用的原因)。

附言它在 webcontrol 中工作,但现在不工作了;(我该如何重置它? 附言我删除了 IE 中的缓存,但使用标准 WebBrowser 太不可靠了..

最佳答案

请记住,您必须等待 DocumentReady 事件,DocumentReadyStateLoaded(不是 Ready - 因为那时Awesomium 还没有完全准备好)

private void WebControl_DocumentReady(object sender, DocumentReadyEventArgs e)
{
    if (e.ReadyState != DocumentReadyState.Loaded) return;
    //Here ExecuteJavascript should work
}

关于c# - 在 awesomium 中执行 javascript 来点击一个 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12088491/

相关文章:

c# - 如何使用子页面的 javascript 调用父页面的 TextChanged 事件?

c# - Entity Framework CTP4 和复合键

JavaScript/Show Hide Div > 当单选按钮被选中时

javascript - React 根据条件更新状态启动计数器

c# - 控制大小在我构建时自行更改。 C#.NET WinForm DevExpress

c# - 将表格列表导出到 CSV 文件

c# - RazorEngine:不解析出现在小于号 ("<"之后的变量)

javascript - node.js - cron.js 与 setInterval

c# - 通过发送信号向下滚动网络浏览器

c# - 我将如何读写加密的 XML 文件?