标签: watin

WatiN还是Selenium?

我将很快开始编写一些自动化测试.似乎每个人都推荐WatiNSelenium.您更喜欢哪种自动测试ASP.NET Web表单?哪些产品更适合您?

作为旁注,我注意到WatiN 2.0自2008年3月以来一直在CTP中,是否值得关注?

asp.net selenium automation watin automated-tests

147
推荐指数
9
解决办法
5万
查看次数

如何在执行MSTest测试期间写入Console.Out

上下文:
我们的一些用户在我们的Web应用程序中报告了文件上载功能的问题.它只是偶尔发生,没有任何特殊模式.我们一直试图弄清楚它,在我们认为可能有用的任何地方添加调试信息,爬行日志等,但我们无法重现或弄清楚它.

问题:
我现在正试图通过使用MSTest和WatiN来重现这个应该重复失败很多次(几百次)的操作.只是想知道测试循环中有多远,我想打印如下:

Console.WriteLine(String.Format("Uploaded file, attempt {0} of {1}", i, maxUploads));
Run Code Online (Sandbox Code Playgroud)

但是,这不会出现在"输出"窗口中.现在我知道您将在测试结果中获得控制台输出(以及您从其中输出的内容Debug.Writeline),但是在测试完成之后才能使用.由于我的测试有数百次重复可能需要一段时间,所以我想知道它已经走了多远.

问题:测试执行期间,
我是否可以在"输出"窗口获取控制台输出?

c# console watin mstest

110
推荐指数
5
解决办法
12万
查看次数

WatiN错误无法加载程序集

我收到以下WatiN错误:

未处理的异常:System.IO.FileLoadException:无法加载文件或组装'Interop.SHDocVw,Version = 1.1.0.0,Culture = neutral,PublicKeyToken = db7cfd3acb5 ad44e'或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(来自HRESULT的异常:0x80131040)文件名:'Interop.SHDocVw,Version = 1.1.0.0,Culture = neutral,PublicKeyToken = db

我将shdocvw.dll从System32复制到bin目录,但它仍然给我同样的问题.

watin

73
推荐指数
3
解决办法
2万
查看次数

WatiN System.IO.FileNotFoundException Interop.SHDocVw

我刚刚开始运行WatIn测试时收到以下错误.

System.IO.FileNotFoundException:无法加载文件或程序集'Interop.SHDocVw,Version = 1.1.0.0,Culture = neutral,PublicKeyToken = db7cfd3acb5ad44e'或其依赖项之一.该系统找不到指定的文件.

我在网上搜索并尝试了以下解决方案,但都没有.

有人可以帮忙吗?

.net nunit watin

40
推荐指数
3
解决办法
2万
查看次数

WatiN:CurrentThread需要将它的ApartmentState设置为ApartmentState.STA才能自动化Internet Explorer

我从C#windows服务调用WatiN.当我调用WatiN时,它会抛出以下异常.CurrentThread需要将它的ApartmentState设置为ApartmentState.STA才能自动化Internet Explorer

我尝试启动一个线程并通过设置公寓状态

mythread.SetApartmentState(ApartmentState.STA)
Run Code Online (Sandbox Code Playgroud)

但这导致了另一个错误

无法计算表达式,因为代码已优化或本机帧位于调用堆栈之上.

我还尝试在Service入口点添加一个属性.

static class Program
{
      [STAThread]
      static void Main()
      {
          ...
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

c# service watin

25
推荐指数
2
解决办法
2万
查看次数

无法在WatiN的selectlist上触发jQuery change()事件

我有一个选择框

 <select id="myselectbox">
   <option value='a'>First option</option>
   <option value='b'>Second option</option>
 </select>
Run Code Online (Sandbox Code Playgroud)

和jquery

 $('#myselectbox').change(function() {
    ...
 });
Run Code Online (Sandbox Code Playgroud)

还有一个WatiN测试

 SelectList list = Browser.SelectList(Find.ById("myselectbox"));
 list.Select("First option");
Run Code Online (Sandbox Code Playgroud)

在IE中,这会更改选择框,但不会触发jquery事件处理程序.我知道围绕IE中的change()事件处理程序的许多问题.所以我尝试在测试中添加一些东西来强制事件发生:

 list.Blur();
 list.Keypress('\r');
 list.Click();
Run Code Online (Sandbox Code Playgroud)

我还尝试在选择框外面单击以移除焦点,希望这会触发事件.

有任何想法吗?

jquery watin

24
推荐指数
3
解决办法
5676
查看次数

你如何让WatiN在Windows Server 2008上使用IE8?

我的问题是我无法通过简单的WatiN测试来可靠地运行我的运行Windows Server 2008和IE8的开发机器.

我已经看到了几个好帖子,但我仍然遇到问题.以下是帖子:

第一篇文章中的步骤似乎有帮助(在我的hosts文件中注释掉":: 1",将我的站点放在可信站点中,并确保我的app.config有"STA"并设置为"copy if"更新",但他们没有帮助可靠.我尝试了第二个例子中的代码,希望它会有所帮助,但事实并非如此.我使用的是WatiN 2.0版beta 1.

我的NUnit代码如下所示:

protected Browser Browser { get; set; }

[TestFixtureSetUp]
public void SetupPriorToTestsInThisFixture()
{
    Browser = new IE();
    Browser.GoTo(Constants.SiteCollectionUrl);
}

[TestFixtureTearDown]
public void TearDownAfterTestsInThisFixture()
{
    if (Browser != null)
    {
        Browser.Dispose();
    }
}

[Test]
public void WaterThroughThePipes()
{
    Link link = Browser.Link(Find.ByText("Calendar"));
    bool exists = link.Exists;
    Assert.That(exists, Is.True, "Could not find 'Calendar' link.");
}
Run Code Online (Sandbox Code Playgroud)

我所看到的是,有时(虽然很少)我的测试通过了.有时断言失败(exists = false),有时我在尝试打开浏览器时会出现超时,有时我在尝试访问link.Exists时出错.

访问link.Exists的错误如下所示:

MyFixture.WaterThroughThePipes:System.Runtime.InteropServices.COMException:接口未知.(HRESULT异常:0x800706B5)

我现在似乎无法重现超时错误,因此我暂时无法提供(尽管这种情况一直都在发生).

在调试模式下运行时,我倾向于看到不同的结果,而不是在调试模式下运行.

对于它的价值,Firefox 3.0.6从未为我工作过.我喜欢它,但需要IE无论如何工作.这是我在Firefox中遇到的错误.

MyFixture(TestFixtureSetUp):WatiN.Core.Native.Mozilla.FireFoxException:无法连接到jssh服务器,请确保你已经正确安装了jssh.xpi插件----> System.Net.Sockets.SocketException:没有连接可以因为目标机器主动拒绝它127.0.0.1:9997

有任何想法吗?我真的不想回到Selenium(去那里,那样做),但我可能不得不这样做.

nunit watin windows-server-2008 internet-explorer-8

21
推荐指数
3
解决办法
1万
查看次数

如何确定CSS是否已加载?

我怎么能断言页面的CSS已成功加载并在Watin 2.1中应用它的样式?

css watin

19
推荐指数
2
解决办法
3万
查看次数

在TeamCity上运行Watin

我正在尝试通过TeamCity运行一个简单的Watin测试,但Internet Explorer窗口永远不会显示,因为通常是通过CruiseControl.

我收到一个错误,它无法找到文本字段,因此正在运行.但是我看不到没有窗户的东西.

是否需要对TeamCity服务器的设置进行特定更改?

teamcity watin

17
推荐指数
2
解决办法
5355
查看次数

WatiN.Core.IE组件在打开URL时出现Internet Explorer繁忙时出现超时

我正在使用WATin IE组件浏览特定网站On StartBrowsing按钮点击事件我正在初始化WatiN.Core.IE的对象并传递网站URL以打开网站,如下面的代码片段所示: -

WatiN.Core.IE ie;  

private void btnStartBrowsing_Click(object sender, EventArgs e)
{          
  ie = new IE(URLs.mainURL);
}
Run Code Online (Sandbox Code Playgroud)

有时或者说我应该说5/10次我收到此错误: - "Internet Explorer忙时超时"

如何解决这个问题?

c# watin

15
推荐指数
2
解决办法
1万
查看次数