【问题标题】:Element not visible exception ( selenium C#, teamcity as service)元素不可见异常(selenium C#,teamcity as service)
【发布时间】:2019-03-19 21:58:09
【问题描述】:

我最近从量角器(客户端应用程序在 angularJS 中)转移到 selenium (C#) 以进行 e2e 测试 - 量角器稳定性有几个问题。

对于 selenium,除了一件重要的事情外,一切都很好。我正在使用 TeamCity 与作为服务运行的代理进行持续集成。问题来了 - 在我得到的几个测试中:

OpenQA.Selenium.ElementNotVisibleException : element not visible (Session info: chrome=50.0.2661.94)

我试图等待元素可见或可点击,但根本没有帮助(反而得到了超时)。

如果我从 VS 或未注册为服务的代理运行测试,一切正常。从技术上讲,我可以将代理用作非服务,但更喜欢代理作为服务。

关于将代理作为服务运行,我有什么特别想念的吗?有什么保护措施可以让我的测试更稳定吗?

【问题讨论】:

  • 您尝试查找的 DOM 是否存在于表中?
  • 很遗憾没有。如果这有帮助,我将使用 Angular Material 作为 UI 组件框架。

标签: c# selenium continuous-integration teamcity


【解决方案1】:

将 TeamCity 代理作为操作系统强加的服务运行存在一些已知限制,请参阅完整列表 here

【讨论】:

  • 有人找到解决此已知问题的方法吗?
【解决方案2】:

如果这对以后的任何人有帮助,我会在 DevExtreme 上遇到这个问题,因为他们对 DOM 的操作......很复杂。

我发现解决此问题的最佳方法是告诉 Selenium 单击您关注的元素的位置,而不是尝试直接单击该元素:

new Actions(webDriver).MoveToElement(elementInQuestion).Click().Perform()

这会将鼠标移动到元素中间的位置并在该位置执行鼠标单击。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-03
    • 1970-01-01
    • 2018-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-07
    • 2017-11-20
    相关资源
    最近更新 更多