我正在2种不同的浏览器“ Chrome”和“ Firefox”上运行测试用例。我正在尝试指定要在“测试”针对“ Chrome”运行期间下载的文件的路径。所有代码均按预期工作,我可以将文件保存在指定的路径中。我的“ Firefox”工作正常,但不适用于“ Chrome”。只是每次我运行脚本时,它都会打开2个“ Chrome”浏览器,((第一个打开,什么也不做),(第二个)(按预期运行脚本))。因此,在我运行的每个测试用例上,它将在第二个“ Chrome”浏览器上运行所有测试用例。此外,我无法使用[TearDown]方法关闭浏览器,因为它在第二个“ Chrome”浏览器上运行,第一个“ Chrome浏览器
[TestFixture(typeof(ChromeDriver))]
[TestFixture(typeof(FirefoxDriver))]
public class Program<TWebDriver> where TWebDriver : IWebDriver, new()
{
IWebDriver driver;
IWebElement element;
[SetUp]
public void StartBrowser1()
{
driver = new TWebDriver();
ICapabilities caps = ((RemoteWebDriver)driver).Capabilities;
string browserName = string.Empty;
if (caps.HasCapability("browserName"))
{
browserName = caps.GetCapability("browserName").ToString();
if (browserName.Equals("chrome"))
{
String myDownloadFolder = @"c:\temp\GoogleChrome\";
var options = new ChromeOptions();
options.AddUserProfilePreference("download.default_directory", myDownloadFolder);
driver.Manage().Window.Maximize();
driver = new ChromeDriver(options);
}
}
// For firefox
else if (browserName.Equals("firefox"))
{
String myDownloadFolder = @"c:\temp\MozillaFirefox\";
FirefoxProfile fp = new FirefoxProfile();
fp.SetPreference("browser.download.folderList", 2);
fp.SetPreference("browser.download.dir", myDownloadFolder);
fp.SetPreference("browser.helperApps.neverAsk.saveToDisk", "application/pdf");
// disable Firefox's built-in PDF viewer
fp.SetPreference("pdfjs.disabled", true);}
Base.Login(driver); // base class , the code for the base class
/* public static void Login(IWebDriver driver)
{
driver.Manage().Window.Maximize();
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5);
driver.Navigate().GoToUrl("http://192.163.0.1/admin/Login/Login.aspx");
driver.FindElement(By.Id("ctl00_MainContent_ucLogin_txtUserID")).SendKeys("abc");
driver.FindElement(By.Id("ctl00_MainContent_ucLogin_txtPassword")).SendKeys("123456");
driver.FindElement(By.Id("ctl00_MainContent_ucLogin_cmdLogin")).Click();
}
*/
}
[TearDown]
public void CloseBrowser()
{
Base.Logout(driver);
}