【问题标题】:Selenium test 'Unable to locate element' in IEIE 中的 Selenium 测试“无法定位元素”
【发布时间】:2013-06-01 00:38:31
【问题描述】:

我创建了一个自动化测试,可以让用户登录网站并执行某些操作。测试首先在 Firefox、Chrome 和 IE 中运行。它在 Firefox 中完美运行,关闭浏览器,然后在 Chrome 中执行测试并再次关闭浏览器。当完全相同的测试在 IE 中打开 URL 时,它说它无法找到登录过程的元素“用户名”。

我有一个等待功能,我试图扩展它以防页面呈现出现问题,但这不起作用。使用开发工具并搜索元素时,它发现没有问题,所以我对它在测试中如何失败感到困惑。

有谁知道在 IE 中可能导致这种情况的原因是什么?

文本字段的 HTML 如下所示...

适用于 FF 和 Chrome 但不适用于 IE 的 Selenium 代码是:

私有结果 _Test_Login(IWebDriver 驱动程序) { 结果 rt;

        driver.Navigate().GoToUrl("MyURL");
        driver.FindElement(By.Id("UserName")).Click();
        TextboxOperation type = new TextboxOperation("UserName", driver, "Success", EnumSearchType.ById);
        OperationExecutor.PerformOperations(type);

        rt = new Results(driver.Url, driver.PageSource, "Existing Users");

        return rt;
    }

    [TestMethod]
    public void Test_Login()
    {
        List<IWebDriver> drivers = new List<IWebDriver>() { firefoxDriver, chromeDriver, ieDriver };
        foreach (IWebDriver driver in drivers)
        {
            Results results = _Test_Login(driver);

            if (results.Exception != null)
            {
                throw results.Exception;
            }

            Assert.IsFalse(results.ErrorState);
        }
    }

【问题讨论】:

  • 您使用什么类型的定位器来定位用户名?你在使用 xpath 吗?
  • 我已经尝试同时使用 id 和 xpath 并且都导致相同的错误。但它在 FF 和 Chrome 中完美运行。
  • 您使用的是哪个版本的硒?尝试使用最新的 selenium jar 2.26.0
  • 我正在为所有浏览器使用 Selenium Webdriver。
  • 显示页面的 html 代码,并粘贴在 FF nut 中运行良好的代码,在 IE 中出现错误。

标签: visual-studio-2010 selenium automated-tests


【解决方案1】:

有时您需要在尝试定位元素之前暂停,因为页面或框架尚未准备好。或者,如果您不想暂停,您可以使用限时 while 循环包装 try-catch 来处理错误情况并在失败时重试查找。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 2021-06-21
    • 1970-01-01
    • 2017-11-27
    相关资源
    最近更新 更多