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