0

私は、整数が$x sequence(s) deleted.どこにあるかを示すアラートが(ほとんど)無害にポップアップすることを知っているスクリプトを実行しています。$xテストケースに失敗することなく、WebDriverにアラートを期待させ、アラートを無視させたいと考えています。このために私は使用して$sel->get_alert()います。次のように正規表現を渡そうとします:

use strict;
use warnings;
$sel->alert_is("id=regexp:/\d+ sequence\(s\) deleted\./");

しかし、私が得るエラーは言う

Unrecognized escape \d passed through at script.pl line 44.
.
.
not ok 14 - get_alert, 'id=regexp:'/d+ sequence(s) deleted./'
Failed test 'get_alert, 'id=regexp:'/d+ sequence(s) deleted./''
at script.pl line 44.
      got: '0 sequence(s) deleted.'
  expected: 'id=regexp:/'d+ sequence(s) deleted./'

正規表現の代わりにグロブを試すと、同様の結果が得られます。整数を推測して、このように渡すと

$sel->alert_is("0 sequence(s) deleted.");

正常に動作するので、Selenese はしっかりしていると確信しています。解決策をグーグルで検索すると、人々が WWW::Selenium の CPAN リストをコピーして貼り付けたさまざまな場所が表示されますが、これは例を示していません。

4

1 に答える 1

1

アラートがポップアップすることを「知っている」場合は、単に使用しないのはなぜdismiss_alertですか? ドキュメントから:

説明: 現在表示されている警告ダイアログを閉じます。comfirm() およびダイアログの場合prompt()、これは [キャンセル] ボタンをクリックすることと同じです。ダイアログの場合alert()、これは「OK」ボタンをクリックするのと同じです。

例:
$driver->dismiss_alert;

または、 を使用できますaccept_alert。ドキュメントから:

説明: 現在表示されている警告ダイアログを受け入れます。通常、これはダイアログの [OK] ボタンをクリックするのと同じです。

例: $driver->accept_alert;

于 2014-08-22T21:04:53.717 に答える