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"); }