我只想在本地测试。使用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);
不幸的是它一直在运行旧版本(由于企业环境,我无法更改旧版本)。
无论如何都要使这个档案有用吗?
答案 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);