异常堆栈跟踪:
OpenQA.Selenium.WebDriverException:无法在45000毫秒内启动套接字。尝试连接到以下地址:127.0.0.1:7055 在OpenQA.Selenium.Firefox.FirefoxDriverServer.ConnectToBrowser(TimeSpan timeToWait) 在OpenQA.Selenium.Firefox.FirefoxDriverServer.Start() 在OpenQA.Selenium.Firefox.FirefoxDriverCommandExecutor.Execute(命令commandToExecute) 在OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute,Dictionary' 2参数) 在OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities) 在OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor commandExecutor,ICapabilities desiredCapabilities) 在DtvAutomation.Selenium.Api.SeleniumFirefoxTest.CreateWebDriver() 在DtvAutomation.Selenium.Api.SeleniumTest' 1.Run()
抛出异常的代码是调用Firefox WebDriver构造函数:
protected override FirefoxDriver CreateWebDriver()
{
lock(this.syncRoot)
{
var ffBinary = new FirefoxBinary();
var ffProfile = new FirefoxProfile();
return new FirefoxDriver(
binary: ffBinary,
profile: ffProfile,
commandTimeout: TimeSpan.FromMinutes(2));
}
}
我正在使用来自Visual Studio 2013的Selenium 2.46(通过NuGet包) - " WCF应用服务"项目。 Firefox是38.0.5(最新)。 当我从Visual Studio(调试模式)启动WCF时,一切正常 - 没有例外。当我将WCF发布到本地IIS时,它会抛出此错误。
我尝试了以下事项:
这些似乎都不起作用。 任何想法可能是什么问题?
答案 0 :(得分:1)
我有同样的问题。将应用程序池标识更改为类似LocalSystem的内容可以解决问题,但您不希望在生产环境中执行此操作。
相反,我在应用程序池的高级设置中找到了一个设置LoadUserProfile
,设置为False
。如果将其设置为True
,则应用程序池会加载用户配置文件,从而摆脱Selenium问题。
您至少需要运行IIS 7,并且可以阅读有关设置here的更多信息。
答案 1 :(得分:0)
我遇到了同样的问题,解决方案是将应用程序池标识从“ApplicationPoolIdentity”切换到更强大的用户。
答案 2 :(得分:0)
我刚遇到类似的问题。我在用 Selenium Webdriver Nuget Package v2.48 Firefox版本41.0
最初,我认为这是FF和Webdriver之间版本冲突的问题,我将Webdriver升级到此版本。没有固定的。 接下来,我将FF降级到31.0。没有固定的。 第三,我想到了最近的变化是什么,而这就是我的这行代码
p.SetPreference("webdriver.log.file", "/tmp/firefox_console");
在这段代码中
FirefoxProfile p = new FirefoxProfile();
//p.SetPreference("webdriver.log.file", "/tmp/firefox_console");
//p.SetPreference("dom.ipc.plugins.flash.disable-protected-mode", true);
driver = new FirefoxDriver(p);
driver.Manage().Window.Maximize();
评论出SetPreference方法= 成功后! Firefox按预期开放。
答案 3 :(得分:-1)
我认为firefox webdriver超时的问题状态。您可以使用包含Firefox配置文件和TimeSpan的以下内容,这可能会减少Firefox Web驱动程序的超时。
IWebDriver driver = new FirefoxDriver(new FirefoxBinary(),
new FirefoxProfile(),
TimeSpan.FromSeconds(180));