Capybara :: ElementNotFound动态构造元素时的异常

时间:2015-03-09 09:19:44

标签: ruby capybara site-prism

如果我们在span标记中有动态内容填充, 例如,

  .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"

如果&#34; @ sample_page&#34;是指我的Site Prism页面,我将sku称为

@sample_page.sku.text

我们将获得Capybara :: ElementNotFound Exception

2 个答案:

答案 0 :(得分:0)

为避免这种情况,我们可以查看以下内容

@sample_page.has_sku?

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

这将省略Capybara :: ElementNotFound Exception

答案 1 :(得分:0)

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

element :sku, "#sku", visible: false