【问题标题】:elementByCss failure after hasElementByCss success in Intern实习生hasElementByCss成功后elementByCss失败
【发布时间】:2014-02-12 17:41:10
【问题描述】:

谁能解释为什么我会收到“错误:错误响应状态:7”。当我在实习生功能测试中运行以下内容时?

.hasElementByCss("#COLUMN1_HEADER > span")
.then(function(result) {
    console.log("Test #2a - Check column header");
    assert(result == true, "Could not find COLUMN1_HEADER in Test #2a");
})
.elementByCss("#COLUMN1_HEADER > span")
    .moveTo()
    .click()
    .end()

请注意,我正在检查一个元素是否存在(已找到并且确实存在),然后尝试移动到它并单击它。

我使用了一些 console.log 调用来确保它在“.elementByCss”行上肯定失败了。有趣的是,在这部分测试之上有一大堆键盘驱动的测试,如果我将它们注释掉,那么它就通过了。

我不明白的是,“hasElementByCss”和“elementByCss”使用相同的 CSS 选择器会产生不同的结果,以及键盘测试有什么影响。

【问题讨论】:

  • 这似乎是由于在测试早期使用了 .active() 方法造成的... elementByCss 是否仅在其回调返回的元素内搜索?
  • 强烈建议不要使用 has 方法;你会根据elementByCss命令是否成功知道元素是否存在。

标签: intern


【解决方案1】:

我通过回溯测试代码并确保在之前使用过 .active() 之后调用了 .end() 来解决此问题......我不知道这是一种解决方法还是预期的行为 - 但它似乎并不特别清楚。我个人认为这是一个错误。

【讨论】:

  • 这是预期的。一旦您检索到一个元素,它将成为未来请求的根上下文,除非您调用 end。这就像 jQuery DOM 方法的工作原理一样,不是缺陷。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-18
  • 2021-03-16
  • 1970-01-01
  • 1970-01-01
  • 2020-12-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多