【问题标题】:Selenium; Unable to find element by class in Internet Explorer硒;无法在 Internet Explorer 中按类查找元素
【发布时间】:2015-06-30 01:16:38
【问题描述】:

尝试使用在 C# 中从 Visual Studio 2013 运行的 Selenium 测试一个简单的页面。 Internet explorer 11 启动并转到正确的页面,但无法从它的类中找到元素(它接下来要做的事情)。您可以使用开发人员工具将这个类看得一清二楚,这是唯一使用它的地方。请注意,这在 Chrome 和 Firefox 中运行良好,使用相同的 test 。

HTML 是;

<input class="btn btn-default" type="submit" value="Log in">

我用来查找它的代码是;

IWebElement logIn = new WebDriverWait(Driver, TimeSpan.FromSeconds(5)).Until(ExpectedConditions.ElementExists(By.ClassName("btn")));

我已尝试将所有四个互联网区域的“保护模式”都关闭,但仍然没有任何乐趣。

【问题讨论】:

    标签: c# internet-explorer selenium


    【解决方案1】:

    这可能是操作系统的 Native vs Synthetic 事件的问题。阅读this。在这种情况下,禁用 IEDriver 的本机事件应该会对您有所帮助。

    我在与您相同的环境下执行以下操作

    var options = new InternetExplorerOptions { EnableNativeEvents = false };
    Driver = new InternetExplorerDriver(options);
    

    【讨论】:

      【解决方案2】:

      我认为如果您使用 CssSelector 或 Xpath 而不是 ClassName,它可能会得到修复

      IWebElement logIn = new WebDriverWait(Driver, TimeSpan.FromSeconds(5)).Until(ExpectedConditions.ElementExists(By.CssSelector("input[class='btn btn-default']"));
      

      【讨论】:

      • 这只是超时等待。
      猜你喜欢
      • 2021-08-27
      • 2021-02-13
      • 2019-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-10
      • 2017-07-05
      相关资源
      最近更新 更多