0

如果我们在跨度标签中有动态内容填充,例如,

  .detail
    %label Sku:
    %span.#sku.detail= @deal.sku

当上例中的交易没有关联 sku 时,html 中的 span 元素将如下所示,其中没有任何内容。

 <div class="detail">
<label>Sku:</label>
<span id="sku" class="detail"></span>
 </div>

如果 SitePrism 元素被定义为查找此元素,例如,

element :sku, "#sku"

如果“@sample_page”是对我的 Site Prism 页面的引用,我将 sku 称为

@sample_page.sku.text

我们会得到 Capybara::ElementNotFound 异常

4

2 回答 2

0

为避免这种情况,我们可以检查如下

@sample_page.has_sku?

如果该元素可用,则根据需要继续执行操作。

这将省略 Capybara::ElementNotFound 异常

于 2015-03-09T09:19:43.637 回答
0

当跨度没有内容时,它是不可见的,因此找不到。如果您仍然想找到它,请将您的元素更改为:

element :sku, "#sku", visible: false
于 2015-04-24T19:14:57.100 回答