我正在使用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();