2016-03-31 15 views
0

チケットを生成するアプリケーションをテストしようとしていますので、チケットを開いて引き継ぐ必要があります。 チケットはランダムなID(チケットの番号)で開かれているので、私はそれを引き受ける部分に問題があります。HTMLページ(キュウリ/カピバラ)でランダムな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:あなたが代わりにCSSの、XPathの検索を使用することができ

`<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> 

`

答えて

0

を行うことができ

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

か、のようなものかもしれないので、XPathは正規表現をサポートしていますすでにチケット番号を変数に抽出しています(これはあなたの前の質問から)

click_button("assign_ticket_#{ticket_number}") 
0

:これは重要項目である場合、チケットを作成するときに、私は、チケットのIDと確認メッセージが表示されあなたがテストしたい要素を得ることができます。それはあなたが作成されている番号(あなたの場合はチケット番号)を持っている場合、あなたがしている場合

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

私はこのフォームを試しましたが、うまくいきませんでした。私はこの 'page.find(:xpath、// div [@cid、 'assign_ticket _#{@ ticket_no [1]}')]') 'を試しました。しかし、私は 'Capybara :: ElementNotFound:xpathを見つけることができませんでした"というメッセージが表示されています。// div [contains(@cid、 'assign_ticket_6168332')] ''助言がありますか? –

+0

XPathでおそらく@idを意味します。また、CSSは文字列の始まり/終わり/含まれているマッチング属性をサポートしています - div [id * = "assign_ticket_"]はXPathと同様にcontainsマッチを行い、div [id^= "assign_ticket_"]はbegin-with idで一致する –

関連する問題