[英]executing javascript in awesomium to click on a div
我在C#winforms應用程序中使用Awesomium來點擊網頁內的div。
如果您直接在谷歌瀏覽器中鍵入以下腳本可以正常工作:
javascript: document.getElementById('ac_play').click();
但是當我嘗試使用以下兩種方法在awesomium中執行它時:
webControl1.ExecuteJavascript("document.getElementById('ac_play').click();");
或這個:
webControl1.LoadURL("javascript: document.getElementById('ac_play').click();");
它不起作用。 這讓我覺得 - Awesomium是否支持“div點擊”? 或者也許還有其他原因導致它不起作用?
我也嘗試過執行代碼:
像往常一樣 - 沒有任何工作。
編輯:
我在GeckoFX中測試了相同的javascript,它也沒有在那里工作..任何解決方法?
EDIT2
Standart WebBrowser控件完美地執行腳本! (雖然它使用IE5左右......這就是為什么我希望看到Awesomium解決方案正常工作)。
PS它正在webcontrol工作,現在不是;(我如何重置它?PPS我刪除了IE中的緩存但是使用標准WebBrowser太不可靠了..
請記住,您必須等待DocumentReady
事件並將DocumentReadyState
作為Loaded
(未Ready
- 因為之后Awesomium尚未准備就緒)
private void WebControl_DocumentReady(object sender, DocumentReadyEventArgs e)
{
if (e.ReadyState != DocumentReadyState.Loaded) return;
//Here ExecuteJavascript should work
}
public void JsFireEvent(string getElementQuery, string eventName)
{
webControl1.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));
}
JsFireEvent("document.getElementById('ac_play')", "click");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.