如何在HTML页面上找到随机ID(Cucumber / Capybara)

时间:2016-03-31 14:10:38

标签: html ruby-on-rails cucumber capybara

我正在尝试测试生成票证的应用程序,因此我必须打开票证然后再接受它。 假设它的部分我遇到了问题,因为门票是用随机ID(票号)打开的。

<button type="submit" id="assign_ticket_6168218" class="btn btn-primary exchange_button">
<i class="fa fa-thumbs-up"></i> Assume

id="assign_ticket_6168218"的数量是随机的,但另一部分始终相同。 所以,我正在创建票证,现在我必须点击按钮来承担它。如何创建故障单并存储要在ID上使用它的故障单号?

PS:如果这是importante,当创建故障单时,我收到一条带有故障单ID的确认消息:

`<div id="messages" class="clearfix">
  <div class="success global alert-default form-section">
   <ul>
      <li><i class="fa fa-check"></i>Ticket 6168218 created.</li>
  </ul>
    <a href="javascript:;" class="close-alert"><strong>x</strong></a>
 </div>

`

2 个答案:

答案 0 :(得分:0)

您可以使用xpath搜索而不是css find来获取要测试的元素。 xpath支持正则表达式,因此它可能类似于

expect(page).to have_xpath("//div[contains(@cid, 'assign_ticket_')]")

或者,如果您有已创建的号码(在您的情况下为票号),您可以

expect(page).to have_xpath("//div[contains(@cid, 'assign_ticket_#{ticket_object_number')]")

答案 1 :(得分:0)

如果你已经将票号抽成一个变量(来自你之前关于SO的问题),那么它只是

click_button("assign_ticket_#{ticket_number}")