首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在awesomium网络控制c#中点击链接

如何在awesomium网络控制c#中点击链接
EN

Stack Overflow用户
提问于 2015-05-21 08:54:41
回答 1查看 894关注 0票数 1

我有一个网站,有两个链接在一个div。我想点击第二个链接,它在这个div里面。以下是网站的HTML外观:

代码语言:javascript
复制
<div class="title-nav-single">
    <strong></strong>
    <a href="http://www.website.com/50665">Previous</a>
    <a href="http://www.website.com/50665/3">Next</a>
</div>

现在,我试图点击包含Next的链接。我不想得到链接的href值,我只想点击链接。以下是我到目前为止尝试过的:

代码语言:javascript
复制
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));
}
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-04 07:45:56

要检测是否单击了链接,需要添加target="_blank"

代码语言:javascript
复制
<a href="http://www.website.com/50665/3" target="_blank">Next</a>

并捕捉这一事件:

代码语言:javascript
复制
webControl.ShowCreatedWebView += OnShowNewView;

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

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

代码语言:javascript
复制
System.Diagnostics.Process.Start(e.TargetURL.ToString());

..or用它做任何你想做的事。更多信息,您可以找到这里

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30368926

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档