使用WatiN时禁用IE可见性

时间:2014-12-11 17:57:27

标签: c# browser watin

我使用watin,因为我需要在后台打开一些用户需要支持Javascript的网站。我不知道WatiN是否是这项工作的最佳选择,但目前需要很长时间才能看到Internet Explorer。我需要禁用在使用WatiN时弹出Internet Explorer。用户不需要查看网站的开放情况。是否可以在使用WatiN访问网站时不显示用户,还是应该使用另一种支持客户端JS的替代方案? 我的代码目前;

    public static void visitURL()
       {
           IE iehandler = new IE("http://www.isjavascriptenabled.com");

           if (iehandler.ContainsText("Yes"))
               Console.WriteLine("js on");
           else
               Console.WriteLine("js off");
       }

2 个答案:

答案 0 :(得分:1)

WatIn.Core.IE类有一个Visible属性,你可以像这样初始化对象:
new WatiN.Core.IE() { Visible = true }

这样,IE在创建时只会在屏幕上闪烁,然后它将被隐藏。您可以稍后使用WatiN.Core.IE类的ShowWindow方法控制IE的可见性 - 我的意思是您可以在屏幕上显示它,如果需要,或者您可以再次隐藏。

答案 1 :(得分:1)

我完全使用(隐藏IE)的技巧来编写在隐藏的IE窗口中运行的UnitTests(使用https://github.com/o2platform/FluentSharp_Fork.WatiN

例如here is how我创建了一个辅助类(具有可配置的隐藏值)

    public IE_TeamMentor(string webRoot, string path_XmlLibraries, Uri siteUri, bool startHidden)
    {
        this.ie                = "Test_IE_TeamMentor".popupWindow(1000,700,startHidden).add_IE();            
        this.path_XmlLibraries = path_XmlLibraries;
        this.webRoot           = webRoot;
        this.siteUri           = siteUri;
    }

然后由this test消费:

   [Test] public void View_Markdown_Article__Edit__Save()
    {
        var article          = tmProxy.editor_Assert()                       // assert the editor user (or the calls below will fail due to security demands)
                                      .library_New_Article_New()             // create new article
                                      .assert_Not_Null(); 

        var ieTeamMentor     = this.new_IE_TeamMentor_Hidden();
        var ie               = ieTeamMentor.ie; 
        ieTeamMentor.login_Default_Admin_Account("/article/{0}".format(article.Metadata.Id));               // Login as admin and redirect to article page

        var original_Content = ie.element("guidanceItem").innerText().assert_Not_Null();                    // get reference to current content
        ie.assert_Has_Link("Markdown Editor")       
          .link           ("Markdown Editor").click();                                                      // open markdown editor page          

        ie.wait_For_Element_InnerHtml("Content").assert_Not_Null()
          .element                   ("Content").innerHtml()
                                                .assert_Is(original_Content);                               // confirm content matches what was on the view page

        var new_Content      = "This is the new content of this article".add_5_RandomLetters();             // new 'test content'

        ie.element("Content").to_Field().value(new_Content);                                                // put new content in markdown editor
        ie.button("Save").click();                                                                          // save 
        ie.wait_For_Element_InnerHtml("guidanceItem").assert_Not_Null()        
          .element                   ("guidanceItem").innerHtml()
                                                     .assert_Is("<P>{0}</P>".format(new_Content));         // confirm that 'test content' was saved ok (and was markdown transformed)            

        ieTeamMentor.close();
    }

以下是一些可能有助于您了解我如何使用它的帖子: