我使用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");
}
答案 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();
}
以下是一些可能有助于您了解我如何使用它的帖子: