Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Selenium和TFBuild页面似乎从未加载_C#_Selenium_Tfs_Automated Tests_Selenium Webdriver - Fatal编程技术网

C# Selenium和TFBuild页面似乎从未加载

C# Selenium和TFBuild页面似乎从未加载,c#,selenium,tfs,automated-tests,selenium-webdriver,C#,Selenium,Tfs,Automated Tests,Selenium Webdriver,我已经使用Selenium和webdriver为MVC应用程序编写了许多测试。这些在我的开发机器上工作没有问题。我们正在使用PageFactory设计。目前,我在页面加载时有一个3秒的显式等待(尽管我已经测试了10秒而没有更改) 下面是一个相对简单的测试: 测试 [TestMethod] public void可以使用有效凭证()登录 { Pages.LoginPage.Goto(); var success=Pages.LoginPage.Login(Properties.Settings.D

我已经使用Selenium和webdriver为MVC应用程序编写了许多测试。这些在我的开发机器上工作没有问题。我们正在使用PageFactory设计。目前,我在页面加载时有一个3秒的显式等待(尽管我已经测试了10秒而没有更改)

下面是一个相对简单的测试:

测试
[TestMethod]
public void可以使用有效凭证()登录
{
Pages.LoginPage.Goto();
var success=Pages.LoginPage.Login(Properties.Settings.Default.UserName,
属性。设置。默认值。密码);
断言(成功);
Pages.HeaderPage.LogOut();
}
页面和相关逻辑
公共静态类页面
{
公共静态登录页登录页
{
得到
{
var loginPage=new loginPage();
PageFactory.InitElements(Browser.Driver,loginPage);
返回登录页;
}
}
}
公共类登录页:第页
{
公共静态字符串Url=Properties.Settings.Default.DomainAddress+“/Account/Logon”;
公共静态字符串PageTitle=“登录”;
[FindsBy(How=How.Id,Using=“UserName”)]
私有IWebElement _userNameBox;
[FindsBy(How=How.Id,Using=“Password”)]
专用IWebElement_密码箱;
[FindsBy(How=How.ClassName,Using=“validation summary errors”)]
私有IWebElement_验证错误;
[FindsBy(How=How.css选择器,使用=“div#LoginSubmit.sign输入”)]
私有IWebElement提交按钮;
公开无效转到()
{
Goto(Url);
}
公共事业
{
返回Browser.Title==页面标题;
}
公共bool登录(字符串用户名、字符串密码)
{
尝试
{
_userNameBox.SendKeys(用户名);
}
捕获(例外)
{
_userNameBox=((IWebDriver)Browser.Driver).FindElement(By.Id(“用户名”),10);
_userNameBox.SendKeys(用户名);
}
_passwordBox.SendKeys(密码);
_submitButton.Click();
返回Browser.CurrentUrl!=Properties.Settings.Default.DomainAddress+“/Account/Logon”;
}
}
问题出现在生成服务器上。所有测试均因以下原因而失败:

类初始化方法 KepsPortalMvc.UserAccountManagementTests.Initialize引发异常。 OpenQA.Selenium.WebDriverTimeoutException: OpenQA.Selenium.WebDriverTimeoutException:10秒后超时 --->OpenQA.Selenium.NoSuchElementException:无法定位元素:{“方法”:“id”,“选择器”:“用户名”}

看起来Firefox甚至没有加载页面。我已经验证(通过任务管理器)webdriver和Firefox都是由BuildServiceAccount启动的,但是我还没有找到监控网络活动的方法(Fiddler至少没有向我显示任何与Firefox实例相关的HTTP流量)

有没有办法(除了在构建服务器上安装Wireshark之类的东西)让我监视WebDriver Firefox?它不会弹出,因为它是作为不同的帐户运行的(我假设这就是原因)

任何帮助都将不胜感激

澄清 <>这是在我的DEV机器上工作,但不是在Team Foundation构建服务器上工作。我们在单个服务器上运行Team Foundation。TFBuild服务帐户是当前运行Webdriver和Firefox的帐户。Firefox的进程条目与WebDriver的条目一样在运行时显示在任务管理器中。Firefox的窗口没有。Fiddler没有向我显示该Firefox实例的任何流量(但我不确定这是否是因为根本没有加载任何内容,或者它只是没有向我显示在另一个用户会话中加载的流量)

我认为这个错误表明没有元素是fpund。是否可能导致FF在当前窗口中失去焦点?
你打开了多少扇窗?或者,在打开URL后,可能会添加sleep或implicite wait,直到元素可见?

这里有一点有根据的猜测,但可能是您的测试环境没有为UI测试设置。看看MSDN上的文章,看看应该如何做


其次,根据我的经验,如果构建代理运行不同版本的msbuild,则可能会发生这种行为。确保它们是相同的。例如,使用VS 2010和VS 2012构建将使用不同的程序集,因此在运行时会产生不同的结果。

如果我理解正确,您可以使用Selenium在本地开发人员计算机上运行UI测试,并希望它们在无TFS构建机上运行

默认情况下,这不起作用,因为生成过程是一个没有UI的服务,当它在TFS生成服务“会话”中运行时,您将无法看到它。因此,您需要将TFS build设置为以交互进程()的形式运行,但这意味着服务器总是被阻止。如果它是某个硬件机器,则可以打开监视器并将其与生成凭据一起使用,因为它未被锁定


我做了一些与MS编码的UI测试类似的事情,为了查看它是否有效,我使用我的帐户作为构建帐户,这样我就可以打开一个到服务器的RDP会话,这与构建相同。所以我可以看到测试过程中发生了什么,但是关闭RDP最终导致测试失败。这就是为什么我总是等待测试完成,然后重启机器

什么版本的硒?Firefox的哪个版本?将其版本与本地版本进行比较,有什么区别吗?每隔几段时间拍一张屏幕截图(没有相关链接,但谷歌可以帮你),只是为了验证Firefox到底看到了什么。我还会尝试在实际用户帐户上运行它,而不是在服务帐户上运行。具有桌面会话的用户帐户。@Arran Selenium-2.31.2;Firefox-20.0。我在本地也有同样的,没有dif
OpenQA.Selenium.NoSuchElementException