Selenium Firefox Profile Path未考虑在内

时间:2013-05-22 11:52:40

标签: c# selenium selenium-webdriver

我只想在本地测试。使用Internet Explorer它可以工作。使用Firefox,我在行driver.FindElement上获得超时:

var capabilitiesInternet = new OpenQA.Selenium.Remote.DesiredCapabilities();
capabilitiesInternet.SetCapability("ignoreProtectedModeSettings", true);
IWebDriver driver = new FirefoxDriver();        
driver.Navigate().GoToUrl(url);

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
IWebElement category = wait.Until<IWebElement>((d) =>
{
    return d.FindElement(By.Name("login"));
});

// Login
driver.FindElement(By.Name("login")).SendKeys("test"); 

错误消息是httpRequest到remotedriver超时。

Upate:我认为这是因为我有一个便携版本的Firefox 21和较旧版本的FF,它不能与Selenium一起使用而Selenium会推出旧版本。所以我试着指出便携式的路径:

var capabilitiesInternet = new OpenQA.Selenium.Remote.DesiredCapabilities();
capabilitiesInternet.SetCapability("ignoreProtectedModeSettings", true);
string path = @"C:\Portable";
FirefoxProfile ffprofile = new FirefoxProfile(path);
IWebDriver driver = new FirefoxDriver(ffprofile);   

不幸的是它一直在运行旧版本(由于企业环境,我无法更改旧版本)。

无论如何都要使这个档案有用吗?

1 个答案:

答案 0 :(得分:1)

不确定这是否是您的问题,但为了将Selenium“指向”Firefox所在的位置,您正在寻找FirefoxBinary类:

var binary = new FirefoxBinary("pathtofirefox");
string path = @"C:\Portable";
FirefoxProfile ffprofile = new FirefoxProfile(path);
var driver = new FirefoxDriver(binary, profile);