无法切换到使用C#和Selenium运行测试的新窗口

时间:2017-11-16 18:22:28

标签: c# selenium

我正在使用C#和Selenium来尝试自动测试我们的网站。我有一个链接,点击时打开一个新窗口。我正在试图找出如何切换到这个新窗口继续测试。

我尝试了以下几行,我在很多博客上都找到了这一行,但是Last并没有出现在Intellisense中,而且还有红色的波浪形。

driverIE.SwitchTo().Window(driverIE.WindowHandles.Last());

我刚接触在Visual Studio中使用C#,所以我不确定我是否不包括我应该做的事情。这是我试图运行的测试的开始。

using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Collections.ObjectModel;
using OpenQA.Selenium;
using OpenQA.Selenium.IE;

namespace SeleniumTest
{
    [TestClass]
    public class UnitTest1
    {
        static IWebDriver driverIE;

        [AssemblyInitialize]
        public static void SetUp(TestContext context)
        {
            driverIE = new InternetExplorerDriver(@"C:\Selenium");
        }

        [TestMethod]
        public void TestIEDriver()
        {
            driverIE.Navigate().GoToUrl("http://localhost/site/");
            driverIE.FindElement(By.Id("txtUserId")).SendKeys("username");
            driverIE.FindElement(By.Id("txtPassword")).SendKeys("password");
            driverIE.FindElement(By.Id("txtPassword")).SendKeys(Keys.Enter);

            //Open Quote
            driverIE.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);
            driverIE.FindElement(By.LinkText("Personal Auto")).Click();

            //Switch to Quote Window
            driverIE.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);
            ReadOnlyCollection<string> WindowList = driverIE.WindowHandles;
            driverIE.SwitchTo().Window(driverIE.WindowHandles.Last());
            driverIE.FindElement(By.Id("txtAgencyCd")).SendKeys("Code");
        }
    }
}

1 个答案:

答案 0 :(得分:-1)

切换到您的网址后,您可以使用此功能

        WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); //you can change 10 seconds to whatever it suits you the best.
        wait.Until(ExpectedConditions.VisibilityOfAllElementsLocatedBy(By.Id("login")));