我在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点击”?也许还有另一个原因导致它不起作用?

我也尝试执行代码:
  • 关于LoadCompleted事件(以确保完全加载页面)
  • ,方法是在“addressBox1”中手动键入脚本(本地awesomium“地址栏”控件)

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

    编辑:

    我已经在GeckoFX中测试了相同的javascript,并且那里也无法正常工作。是否有任何解决方法?

    EDIT2

    Standart WebBrowser控件完美执行脚本! (尽管它使用的是IE5左右。这就是为什么我希望看到Awesomium解决方案有效的原因)。

    附言它在webcontrol中工作,现在却不行;(我如何重置它?
    P.P.S.我在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/

    10-11 04:39