我正在使用jquery Dialog UI开发应用程序。
我们有一个具有此行为的屏幕:如果匹配了不同规则,则在单击表单提交按钮后会链接一个或多个Jquery UI对话框。
使用Phpunit SeleniumTestCase(参见扩展名PHPUnit_Extensions_SeleniumTestCase)和Selenium RC我试图点击那些对话框的按钮来模拟测试。
不幸的是它不起作用,我不能使用XPath,因为对话框的数量不同,每个的Xpath将不同(匹配显示规则)。所以我决定在按钮上设置ID,例如我们正在使用的典型UI对话框:
<div class="ui-dialog ui-widget ui-widget-content ui-corner-all ui-front ui-dialog-buttons ui-draggable ui-resizable" style="position: absolute; height: auto; width: 300px; top: 343px; left: 487px; display: block;" tabindex="-1" role="dialog" aria-describedby="ui-id-10" aria-labelledby="ui-id-11">
<div class="ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix">
<span id="ui-id-11" class="ui-dialog-title">Attention</span>
<button class="ui-button ui-widget ui-state-default ui-corner-all ui-button-icon-only ui-dialog-titlebar-close" role="button" aria-disabled="false" title="close">
<span class="ui-button-icon-primary ui-icon ui-icon-closethick"/>
<span class="ui-button-text">close</span>
</button>
</div>
<div id="ui-id-10" style="display: block; width: auto; min-height: 88px; max-height: none; height: auto;" class="ui-dialog-content ui-widget-content">Le champ n° de secours n'a pas été renseigné; acceptez-vous qu'il soit affecté par défaut avec la valeur du ND cible?</div>
<div class="ui-dialog-buttonpane ui-widget-content ui-helper-clearfix">
<div class="ui-dialog-buttonset">
<button type="button" id="popup_numero_secours_yes" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" role="button" aria-disabled="false">
<span class="ui-button-text">Oui</span>
</button>
<button type="button" id="popup_numero_secours_no" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" role="button" aria-disabled="false">
<span class="ui-button-text">Non</span>
</button>
<button type="button" id="popup_numero_secours_cancel" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" role="button" aria-disabled="false">
<span class="ui-button-text">Annuler</span>
</button>
</div>
</div>
<div class="ui-resizable-handle ui-resizable-n" style="z-index: 90;"/>
<div class="ui-resizable-handle ui-resizable-e" style="z-index: 90;"/>
<div class="ui-resizable-handle ui-resizable-s" style="z-index: 90;"/>
<div class="ui-resizable-handle ui-resizable-w" style="z-index: 90;"/>
<div class="ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se" style="z-index: 90;"/>
<div class="ui-resizable-handle ui-resizable-sw" style="z-index: 90;"/>
<div class="ui-resizable-handle ui-resizable-ne" style="z-index: 90;"/>
<div class="ui-resizable-handle ui-resizable-nw" style="z-index: 90;"/>
</div>
但Selenium无法通过以下方式捕获使用此ID识别的任何按钮:
$this->getXpathCount("//button[@id=\"popup_checklist_yes\"]");
甚至使用按钮标签(我不喜欢因为不准确):
$this->getXpathCount("//button[@type=\"button\"]/span[text()=\"Oui\"]");
这也不行:
$this->click('id=popup_checklist_yes');
任何人都遇到过这个问题而且已经修好了吗?
提前谢谢!