51Testing软件测试论坛

标题: Coded UI中执行Javascript [打印本页]

作者: Mario洁    时间: 2018-4-20 15:12
标题: Coded UI中执行Javascript
Coded UI中用C#对WebBrowser执行JavaScript,之前一直纠结这个问题各种找方法,最后查看WatiN中的Ru
nScript()方法的实现,终于有所收获。

有例有真相:Technet Library的登录实现:

  1. 复制代码
  2.        [TestMethod]
  3.         public void VerifySignIn()
  4.         {
  5.             string url = "https://login.live-int.com/login.srf?wa=wsignin1.0&rpsnv=46&ct=1364435925&rver=6.0.5276.0&wp=MCLBI&wlcxt=TechNet%24TechNet%24TechNet&wreply=http%3a%2f%2ftechnettest.redmond.corp.microsoft.com%2fen-US%2flibrary%2faa991542%3flc%3d1033&lc=1033&id=266001&mkt=en-US";
  6.             string name = "abc";
  7.             string psw = "123";

  8.             //js代码:f1是表单,i0116是UserName文本框的id,i0118是Password的文本框id,idSIButton9是Sign in按钮的id。
  9.             string scriptCode = "f1.i0116.value=" + "'" + name + "'; f1.i0118.value=" + "'" + psw + "'; f1.idSIButton9.click();";
  10.             
  11.             BrowserWindow browser = BrowserWindow.Launch(new Uri(url));
  12.             HtmlInputButton _btnSubmit = new HtmlInputButton(browser);
  13.             _btnSubmit.SearchProperties[HtmlInputButton.PropertyNames.Id] = "idSIButton9";

  14.             //将HtmlControl转换成HtmlElement,然后获取到IHTMLDocument2对象,进而获取到IHTMLWindow2对象,然后调用其execScript()方法
  15.             IHTMLElement btnSubmit = _btnSubmit.NativeElement as IHTMLElement;
  16.             var doc = btnSubmit.document as IHTMLDocument2;
  17.             IHTMLWindow2 window = doc.parentWindow;
  18.             window.execScript(scriptCode, "javascript");
  19.             browser.WaitForControlReady();
  20.         }
复制代码



作者: 梦想家    时间: 2018-5-9 10:01





欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2