尝试创建新的FirFoxDriver()时,会启动一个新窗口但从不完全加载。这是我的代码片段。我有这样的框架设置。每个网页都是它自己的文件Base web Page。每组页面测试都是它自己的文件,基础测试页面。
TestFixture和TestFixtureSetup以及实际测试文件的设置。
[TestFixture("FireFox")]
public class LoginPageTests : BaseSeleniumTest
{
public readonly string _TestDriver;
private LoginPage _LoginPage;
private Users _Users;
private HomePage _HomePage;
public LoginPageTests(string driverToUse) { _TestDriver = driverToUse; }
[TestFixtureSetUp]
public override void TestFixtureSetUp()
{
base.DriverSetUp(_TestDriver);
_Users = new Users(Credentials.bleonard);
}
[SetUp]
public void Setup()
{
_LoginPage = new LoginPage(Driver);
}
BaseTestPage:
public abstract class BaseSeleniumTest
{
protected IWebDriver Driver;
protected Stopwatch SeleniumStopwatch = Stopwatch.StartNew();
protected BaseSeleniumTest()
{
SeleniumStopwatch = Stopwatch.StartNew();
}
public static IWebDriver GetDriver(string driverToUse)
{
IWebDriver w;
Trace.Write("Newing up driver...");
switch (driverToUse)
{
case "InternetExplorer":
w = new InternetExplorerDriver(@"C:\cst-bitbucket\Selenium\Cst.Selenium.Tests");
w.Manage().Window.Maximize();
break;
case "Chrome":
ChromeOptions options = new ChromeOptions();
options.AddArgument("test-type");
options.AddArgument("start-maximized");
w = new ChromeDriver(@"C:\cst-bitbucket\Selenium\Cst.Selenium.Tests", options);
break;
case "FireFox":
w = new FirefoxDriver();
w.Manage().Window.Maximize();
break;
default:
w = new FirefoxDriver();
w.Manage().Window.Maximize();
break;
}
w.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(3));
return w;
}
public virtual void DriverSetUp(string driverToUse)
{
try
{
if (Driver == null)
{
Driver = GetDriver(driverToUse);
}
else
{
Driver.Quit();
Driver = GetDriver(driverToUse);
}
Driver.Manage().Cookies.DeleteAllCookies();
}
catch (Exception ex)
{
Assert.Inconclusive(TestResultReporter.AssertError = "Failed while getting web driver!" + ex);
}
}
调试时会发生什么事情。在BaseTestPage上调用base.DriverSetup(_TestDrive)。由于该页面上的驱动程序为null,因此它会触发GetDriver方法,该方法接收来自fireFox的driverToUse。 GetDrive将转移到开关盒" FireFox",并启动新的FirfoxDriver()。加载一个新窗口,但永远不会去主页或任何东西。它会挂在该行上,输出显示多个
类型' System.Net.Sockets.SocketException'的第一次机会异常。 发生在System.dll
中
然后在DriverSetUp
方法中抛出catch语句,最终输出错误为:
类型' OpenQA.Selenium.WebDriverException'的第一次机会异常。 发生在WebDriver.dll
中
给出。任何帮助都会很棒,我已经在这几天工作了。
答案 0 :(得分:1)
症状类似于我在使用selenium
2.44和Firefox
35或更高时看到的情况 - 存在兼容性问题:
作为解决方法,将Firefox降级为34.0.5 。
答案 1 :(得分:0)
要解决我的问题,请先尝试将Selenium更新为2.45。 Webdriver和支持所有语言的版本是2/27/15。确保您完全关闭Visual Studio并重新启动,以便一切都干净。如果这不起作用,您需要降级到FireFox 34.0.5。此时FireFoxWebDriver推出很好。