Как выполнить функцию Javascript из C # WebBrowser? - PullRequest
0 голосов
/ 20 мая 2009

Я занимаюсь веб-автоматизацией через C # и WebBrowser. Есть ссылка, по которой мне нужно «щелкнуть», но, поскольку она запускает функцию Javascript, очевидно, код должен выполняться, а не просто щелкать элемент (т.е. Вот ссылка для элемента, который открывает форму Ajax:

javascript:__doPostBack("ctl00$cphMain$lnkNameserverUpdate", "")

Я пробовал:

webBrowser1.Document.InvokeScript("javascript:__doPostBack", new object[] { "ctl00$cphMain$lnkNameserverUpdate", "" });

и

webBrowser1.Document.InvokeScript("__doPostBack", new object[] { "ctl00$cphMain$lnkNameserverUpdate", "" });

и несколько других вещей. Код получает удар, но скрипт не запускается. Любые идеи будут наиболее ценными.

Gregg

Кстати, вот полный элемент, если он полезен:

<a href="javascript:__doPostBack('ctl00$cphMain$lnkNameserverUpdate','')" onmouseout="window.status=''; return true" onmouseover="window.status='Update Nameservers'; return true" id="ctl00_cphMain_lnkNameserverUpdate" onclick="javascript:Layout.ChangeIframeToSrc('DropinLoad_Domain.aspx?controlRequest=ActionNameserversWithIP');return false;">NS51.DOMAINCONTROL.COM<br/>NS52.DOMAINCONTROL.COM<br/></a>

Ответы [ 2 ]

0 голосов
/ 04 апреля 2014
HtmlDocument doc = browser.Document;
HtmlElement head = doc.GetElementsByTagName("head")[0];
HtmlElement s = doc.CreateElement("script");
s.SetAttribute("text","function sayhello() { alert('hello'); }");
head.AppendChild(s);
browser.Document.InvokeScript("sayHello");
0 голосов
/ 20 мая 2009

Посмотрите по этой ссылке:

http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.objectforscripting.aspx

Я действительно использовал это в прошлом, и он отлично работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...