Selenium C#dropdown跳回原始状态

时间:2015-08-28 08:38:22

标签: c# selenium drop-down-menu dropdownbox

目前我正在开展一个小项目来验证一些登录帐户。 我遇到这个问题,当我选择提供者Canal Digitaal然后点击“登录”时,下拉框会跳回到它的初始状态。当手动工作正常但使用UnitTest自动化时,它不会。我简化了代码(没有POM),但仍然没有工作。希望有人知道我的问题是什么。对于一个类似的网站,它的工作正常,但为此它... ..这是我的代码现在:

        IWebDriver driver = new FirefoxDriver();
        driver.Navigate().GoToUrl("http://video.sport1.nl");

        driver.FindElement(By.Id("login")).Click();

        new SelectElement(driver.FindElement(By.Id("provider"))).SelectByValue("canaldigitaal");

        driver.FindElement(By.Id("login")).Click();    

1 个答案:

答案 0 :(得分:1)

问题是页面上有两个ID = login的元素。您可以通过使用driver.FindElements(By.CssSelector("#login")).Count看到它并返回2.一个是DIRECT INLOGGEN链接(右上角),另一个是Inloggen(红色按钮)。您错误地点击了DIRECT INLOGGEN链接,它会重置所有内容。试试这个

IWebDriver driver = new FirefoxDriver();
driver.Navigate().GoToUrl("http://video.sport1.nl");
driver.FindElement(By.Id("login")).Click();
new SelectElement(driver.FindElement(By.Id("provider"))).SelectByValue("canaldigitaal");
driver.FindElement(By.CssSelector("div.login > #login")).Click();

我首先抓住父DIV div.login(带登录类别的DIV),然后找到ID为登录的A子(>)。