私はすでにこの問題にリンクしている質問がありますが、この質問は別のアプローチです。regexpとテキストを置き換えるRuby Capybara
私は、トランザクションが完了した後にタイムスタンプ(hhmmss)を含むウェブページ上に文字列を生成します。
多くの要因によって処理時間が異なるため、Time.nowは使用できません。
ページ上のテキストは次のとおりです。
"Your transaction reference number is: 0 16123 (timestamp is here) A1"
私は私のテストでテキストを読むための要素の中に見ることになります:
expect(find(location)).to have_text trans_text
私は、変数として場所テキストを設定することができます:
trans_text = find(location, text: 'Your transaction reference number is: 0 16123 (timestamp is here) A1')
次に、タイムスタンプを正規表現に置き換えて、そのタイムスタンプが2回になると予想しますか?
trans_text = find(location, text: 'Your transaction reference number is: 0 16123 (\d+) A1')
しかし、喜びを持っていた:
私がやって試してみました。次のエラーが表示されます。
Unable to find css "#main > div > div.section-content > div.two-col.retention-success > div.second-col > div.alert-complete > p" with text "Your retention certificate number is: 0 16123 (/d+) A1".
テキストのタイムスタンプ部分を置き換える正規表現を入力するにはどうすればよいですか? Capybara documentationによると
おかげ
Wh形式はタイムスタンプですが、例を挙げることはできますか? '(\ d +)'や '(。* +)'の代わりに '(\ w +)'を試してください – Druzion
形式は(hhmmss)です。 "'あなたのトランザクション参照番号は:0 16123 120000 A1')"です。 strftimeは( '%H%M%S') – Tom
になります。私はエラーを表示するために編集しました – Tom