在指定要使用Selenium Webdriver c#Nunit下载的文件的过程中,Chrome浏览器运行了两次

时间:2019-05-29 03:53:18

标签: c# selenium-webdriver

我正在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);
    }

0 个答案:

没有答案