目前我正在开展一个小项目来验证一些登录帐户。 我遇到这个问题,当我选择提供者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();
答案 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
子(>)。