我在 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
事件,DocumentReadyState
为 Loaded
(不是 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/