使用 Javascript 从 Selenium::Remote::D river 包中恢复 Windows "Confirm Box"



我正在使用Perl包Selenium::Remote::D river进行一些非回归测试。我想恢复一个窗口确认框。我知道我必须执行一些Javascript片段代码才能恢复它。通常,我可以使用选择器获得不包含在Selenium::Remote::D river包中的网页行为,其中包含一些Javascript代码(在下面比较)。但就我而言,我无法恢复我的"确认框",因为我无法检查我的"Confrim Box"元素。所以我无法使用开发人员工具查找选择器或 xpath。

PS:我不想知道此警报("确认框")是否存在。我知道它在我的网页中,我不想断言它。

例如,我还必须使用以下Javascript片段:

   my $script = q{
       var arg1 = arguments[0];
       var elem = window.document.findElementById(arg1);
       return elem;
   };
   my $elem = $driver->execute_script($script,'myid');
   $elem->click;

下面是包含我的"确认框"的代码部分:

if (confirm("Are you sure?")) {
      var promises = [];
      CW.showLoadingPanel();
      $.each(dataGrid.getSelectedRowsData(), function() { ... }
     ...
      };

那么我该怎么办这个问题?

Selenium有一些方便的函数来与javascript警报进行交互。例如,在perl中,你可以接受带有以下调用的警报:

$driver->accept_alert;

您可以获取呼叫的警报文本:

$driver->get_alert_text();

并使用以下方法消除警报:

$driver->dismiss_alert();

最新更新