如何在HTML页面上找到随机ID(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:如果这很重要,当创建票证时,我会收到一条带有票证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>

`

如果您已经将票号提取到一个变量中(来自您之前关于SO的问题),那么它只是

click_button("assign_ticket_#{ticket_number}")

您可以使用xpath搜索而不是css查找来获取要测试的元素。xpath支持regex,所以它可以是类似的东西

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

或者,如果你有已经创建的号码(在你的情况下是票号),你可以进行

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

最新更新