Note that there are some explanatory texts on larger screens.

plurals
  1. POWebbrowser behaviour issues
    primarykey
    data
    text
    <p>I am trying to automate Webbrowser with .NET C#. The issue is that the control or should I say IE browser behaves strange on different computers. For example, I am clickin on link and fillup a Ajax popup form on 1st computer like this, without any error:</p> <pre><code>private void btn_Start_Click(object sender, RoutedEventArgs e) { webbrowserIE.Navigate("http://www.test.com/"); webbrowserIE.DocumentCompleted += fillup_LoadCompleted; } void fillup_LoadCompleted(object sender, System.Windows.Forms.WebBrowserDocumentCompletedEventArgs e) { System.Windows.Forms.HtmlElement ele = web_BrowserIE.Document.GetElementById("login"); if (ele != null) ele.InvokeMember("Click"); if (this.web_BrowserIE.ReadyState == System.Windows.Forms.WebBrowserReadyState.Complete) { web_BrowserIE.Document.GetElementById("login").SetAttribute("value", myUserName); web_BrowserIE.Document.GetElementById("password").SetAttribute("value", myPassword); foreach (System.Windows.Forms.HtmlElement el in web_BrowserIE.Document.GetElementsByTagName("button")) { if (el.InnerText == "Login") { el.InvokeMember("click"); } } web_BrowserIE.DocumentCompleted -= fillup_LoadCompleted; } } </code></pre> <p>However, the above code wont work on 2nd pc and the only way to click is like this:</p> <pre><code>private void btn_Start_Click(object sender, RoutedEventArgs e) { webbrowserIE.DocumentCompleted += click_LoadCompleted; webbrowserIE.Navigate("http://www.test.com/"); } void click_LoadCompleted(object sender, System.Windows.Forms.WebBrowserDocumentCompletedEventArgs e) { if (this.webbrowserIE.ReadyState == System.Windows.Forms.WebBrowserReadyState.Complete) { System.Windows.Forms.HtmlElement ele = webbrowserIE.Document.GetElementById("login"); if (ele != null) ele.InvokeMember("Click"); webbrowserIE.DocumentCompleted -= click_LoadCompleted; webbrowserIE.DocumentCompleted += fillup_LoadCompleted; } } void click_LoadCompleted(object sender, System.Windows.Forms.WebBrowserDocumentCompletedEventArgs e) { webbrowserIE.Document.GetElementById("login_login").SetAttribute("value", myUserName); webbrowserIE.Document.GetElementById("login_password").SetAttribute("value", myPassword); //If you know the ID of the form you would like to submit: foreach (System.Windows.Forms.HtmlElement el in webbrowserIE.Document.GetElementsByTagName("button")) { if (el.InnerText == "Login") { el.InvokeMember("click"); } } webbrowserIE.DocumentCompleted -= click_LoadCompleted; } </code></pre> <p>So, in second solution I have to call two Load Completed Chains. Could someone advise on how should I can handle this issue? Also, a proposal for more robust approach would be very helpfull. Thank you in advance </p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload