【问题标题】:Unable to Switch to New Window Running Test with C# and Selenium [duplicate]无法切换到使用 C# 和 Selenium 运行测试的新窗口 [重复]
【发布时间】:2017-11-17 03:32:07
【问题描述】:

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

【问题讨论】:

    标签: c# selenium


    【解决方案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")));
    

    【讨论】:

    • 您可以输入您正在等待的任何 ID。我为我的窗口使用了登录来等到我得到登录元素
    • 当我“单击”第一个窗口中的链接时,它会自动在旧窗口之上启动一个新窗口,因此现在有 2 个窗口。我试图弄清楚如何切换到新窗口。点击的链接使用 javascript 打开新窗口。
    • 这不能回答问题。
    猜你喜欢
    • 1970-01-01
    • 2011-08-07
    • 2021-07-31
    • 1970-01-01
    • 2019-12-02
    • 1970-01-01
    • 2016-08-12
    • 1970-01-01
    • 2015-05-01
    相关资源
    最近更新 更多