Awesomium获取并单击Tags属性

我在按标签名称和属性点击按钮时遇到问题。 我可以使用带有以下内容的按钮类单击它:

public void Event(string getElementQuery, string eventName) { Control.ExecuteJavascript(@" function fireEvent(element,event) { var evt = document.createEvent('HTMLEvents'); evt.initEvent(event, true, false ); // event type,bubbling,cancelable element.dispatchEvent(evt); } " + String.Format("fireEvent({0}, '{1}');", getElementQuery, eventName)); } private void Reload_Tick(object sender, EventArgs e) { Event("document.getElementsByClassName('Reload')[0]", "click"); } 

这很好,但有时候我有一个按钮重新加载一个按钮。 我想更好地定义它使用标签为a并且属性为RELOAD我已尝试使用以下内容但它什么都不做:

Event("document.getElementsByTagName('a').getAttribute('RELOAD')[0]", "click");

这可以工作,但它点击了错误的按钮,这就是为什么我也需要该属性。

Event("document.getElementsByTagName('a')[0]", "click");

但是当我尝试获取属性时没有任何反应。 有人可以帮帮我吗。

这里回答http://answers.awesomium.com/questions/5826/get-attribute-of-tag-and-invoke-click.html

我已经尝试了以下但是它什么都没做document.getElementsByTagName(’a’)。getAttribute(’RELOAD’)[0]

你应该在浏览器(Chrome)控制台中检查这样的代码。 它甚至不会运行。

使用XPath。

  ///  /// Returns JavaScript XPath query string for getting a single element ///  /// Any valid XPath string, for example "//input[@id='myid']" /// JS code to perform the XPath query (document.evaluate(...) public static string GetJsSingleXpathString(string xpath) { return String.Format( "document.evaluate(\"{0}\", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue", xpath); } private void Reload_Tick(object sender, EventArgs e) { string jsXpath = GetJsSingleXpathString("//a[contains(@class, 'Reload')]"); Event(jsXpath, "click"); } 
Interesting Posts