Javascript 如何在awesomium webcontrol c中单击链接#

Javascript 如何在awesomium webcontrol c中单击链接#,javascript,c#,jquery,html,awesomium,Javascript,C#,Jquery,Html,Awesomium,我有一个网站,在一个div有两个链接。 我想点击该分区内的第二个链接。 以下是网站的HTML格式: 现在我尝试单击包含Next的链接。我不想获取链接href值,我只想单击链接。以下是我迄今为止所尝试的: private void button1_Click(object sender, EventArgs e) { string xpath = GetJsSingleXpathString("//DIV[@ID=\"outbrain_widget_0\"]/preceding-si

我有一个网站,在一个div有两个链接。 我想点击该分区内的第二个链接。 以下是网站的HTML格式:



现在我尝试单击包含
Next
的链接。我不想获取链接
href
值,我只想单击链接。以下是我迄今为止所尝试的:

private void button1_Click(object sender, EventArgs e)
{
    string xpath = GetJsSingleXpathString("//DIV[@ID=\"outbrain_widget_0\"]/preceding-sibling::DIV[3]//A[normalize-space()=\"Next\"]");
    JsFireEvent(xpath, "click");
    // webcontrol.ExecuteJavascriptWithResult("document.getElementsByClassName('title-nav-single').ElementAt(1).DomObject.click();");
}

public static string GetJsSingleXpathString(string xpath)
{
    return String.Format("document.evaluate(\"{0}\", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue", xpath);
}

// executes javascript which fires specified event on element 
// Example: JsFireEvent("document.getElementById('my_id')", "click");
public void JsFireEvent(string getElementQuery, string eventName)
{
    webcontrol.ExecuteJavascript(@"function fireEvent(element,event) {
        var evt = document.createEvent('HTMLEvents');
        evt.initEvent(event, true, true ); // event type,bubbling,cancelable
        element.dispatchEvent(evt);
    }" + String.Format("fireEvent({0}, '{1}');", getElementQuery, eventName));
}
}

要检测是否单击了链接,您需要添加
target=“\u blank”

最后,您可以使用传统方式打开它:

System.Diagnostics.Process.Start(e.TargetURL.ToString());

…或者做任何你想用它做的事。您可以找到更多信息

我不确定是否理解您的问题。您发布的这个“网站的HTML”是网站加载到Awesomium的WebControl中的,您只想打开这些链接吗?或者用它们做其他什么?我想点击这些链接。谢谢你的帮助。
webControl.ShowCreatedWebView += OnShowNewView;

internal static void OnShowNewView( object sender, ShowCreatedWebViewEventArgs e )
{
    // Do sth with your link. it's in e.TargetURL
}
System.Diagnostics.Process.Start(e.TargetURL.ToString());