在使用 WatiN 时禁用 IE 可见性
本文关键字:IE 可见性 WatiN | 更新日期: 2023-09-27 18:33:56
我使用 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");
}
WatIn.Core.IE 类有一个 Visible 属性,你可以像这样初始化对象:
new WatiN.Core.IE() { Visible = true }
这样,IE在创建时只会在屏幕上闪烁,然后它将被隐藏。稍后您可以使用 WatiN.Core.IE 类的 ShowWindow 方法控制 IE 的可见性 - 我的意思是如果需要,您可以在屏幕上显示它,或者您可以再次隐藏。
我完全使用这个技巧(隐藏IE)来编写在隐藏的IE窗口中运行的单元测试(使用 https://github.com/o2platform/FluentSharp_Fork.WatiN)
例如,这是我如何创建一个帮助程序类(具有可配置的隐藏值)
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;
}
然后由此测试消耗:
[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();
}
以下是一些可以帮助您了解我如何使用它的帖子:
- https://github.com/TeamMentor/Dev/tree/master/Source_Code/TM_UnitTests/TeamMentor.UnitTests.QA/TeamMentor_QA_IE
- http://blog.diniscruz.com/2014/07/how-to-debug-cassini-hosted-website-and.html
- http://blog.diniscruz.com/2014/07/using-watin-and-embedded-cassini-to-run.html
- http://blog.diniscruz.com/search/label/WatiN