1

我只想在本地测试。使用 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。

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);   

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

反正有没有使这个配置文件工作?

4

1 回答 1

1

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

var binary = new FirefoxBinary("pathtofirefox");
string path = @"C:\Portable";
FirefoxProfile ffprofile = new FirefoxProfile(path);
var driver = new FirefoxDriver(binary, profile);
于 2013-05-22T12:28:31.113 回答