【问题标题】:click on button during test run opens a blank window selenium c#在测试运行期间单击按钮会打开一个空白窗口 selenium c#
【发布时间】:2019-05-16 23:33:45
【问题描述】:

我在使用 Chrome 驱动程序和 Selenium 时遇到了一些困难,我有 selenium.support 版本 3.141.0、chrome 驱动程序版本 2.43.0 和 Google Chrome 版本 71.0.3578.98。

在测试运行期间,我单击了一个打开一个新窗口的按钮,但由于某种原因,该窗口是空白的,而不是应该加载的站点。我试图手动复制它,但除了测试运行之外它不会发生。

您有什么解释或知道发生这种情况的原因吗?

【问题讨论】:

  • 它会抛出任何异常吗?
  • 它抛出异常'对象引用未设置为对象的实例',因为我试图在窗口中找到一个元素
  • 我过去也遇到过同样的问题,你能提供你的代码和html吗?
  • @MosheSlavin html:。代码:Window.WaitForElement(By.XPath("//*[contains(@id, 'someId')]")).click();. window 是 IWebDriver 的包装器
  • 有时您的点击不是在调用重新呈现到新页面的元素上...

标签: c# selenium automation selenium-chromedriver


【解决方案1】:

这个问题我遇到过好几次了……

我发现我试图点击的元素不是实际调用重新渲染到下一页的元素...

我的解决方案

所以...为了获得父元素,我在 XPath 中使用了 parent 方法。

例如,如果我正在寻找带有id='x_d' 的元素,那么我使用:Window.WaitForElement(By.XPath("//*[contains(@id, 'x')]")).click();

现在的问题是 Invoker 是父级,所以要访问父级 a 我将使用:

Window.WaitForElement(By.XPath("//*[contains(@id, 'x')]//parent :: a")).click();

希望对您有所帮助!

【讨论】:

    猜你喜欢
    • 2015-10-08
    • 2019-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-12
    • 1970-01-01
    • 1970-01-01
    • 2016-11-19
    相关资源
    最近更新 更多