2016-06-01 27 views
1

我正在使用Perl包Selenium :: Remote :: Driver进行一些非回归测试。 我想恢复一个Windows确认框。我知道我必须执行一些JavaScript代码来恢复它。通常,我可以使用选择器在Selenium :: Remote :: Driver包中包含一些使用一些Javascript代码(比较如下)的网页行为。但在我的情况下,我无法恢复我的“确认框”,因为我无法检查我的“Confrim Box”元素。所以我不能使用开发工具来查找选择器或xpath。从Selenium :: Remote :: Driver包中使用Javascript恢复窗口“Confirm Box”

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() { ... } 
    ... 
     }; 

所以,我该怎么办这个问题?

+0

相关:http://stackoverflow.com/a/4934124/1331451 – simbabque

+0

可能重复[Selenium + Perl:检查警报是否存在?](http://stackoverflow.com/questions/14843724/selenium-perl-check-if -alert-exists) – Mobrockers

+0

我不想断言如果我的“警报箱”,我的“确认箱”存在。这是第一篇文章。第二,它不涉及Selenium :: Remote :: Driver。谢谢 。 – Chaoui05

回答

1

硒有一些便利的功能与JavaScript警报交互。在Perl例如,您可以接受一个警报,以下调用:

$driver->accept_alert; 

你可以与呼叫警报文本:

$driver->get_alert_text(); 

而且使用解除警报:

$driver->dismiss_alert(); 
+0

谢谢,但我怎么能点击我的“确认框”(警报)中的确定按钮? – Chaoui05

+0

'$ driver-> accept_alert;'在警报中按下确定按钮(不管名字是什么),是的。 – Mobrockers

+0

谢谢。我会告诉你在这里是否可以。 – Chaoui05

相关问题