使用selenium web驱动程序进行Internet Explorer(IEDriverServer_x64_2.44.0)
我试图点击jquery对话框上的按钮 我的代码如下:
$("#dialog-text").html(dlg_message);
$("#dialog-msg").dialog({
bgiframe: true,
autoOpen: false,
height: 'auto',
modal: true,
draggable: false,
title: dlg_title,
buttons: btns,
close: function () {
//$('body').css('overflow', 'visible');
for (var item in controlsToEnable)
getControl(controlsToEnable[item]).disabled = false;
},
open: function (event, ui) { $('.ui-widget-overlay').css('width', '100%'); }
});
$("#dialog-message").dialog('open');
$(this).parents('.ui-dialog-buttonpane button:eq(' + indexButtonFocused + ')').focus();
<div id="dialog-msg" style="display: none;">
<p style="margin: 0 7px 50px 7px;">
<span class="ui-icon ui-icon-circle-check"></span><span id="dialog-text">MESSAGE</span>
</p>
</div>
此弹出窗口附带2个按钮是和否(我将其存储在var:btns中)btns [&#39; No&#39;]和btns [&#39;是&#39;] 我如何点击这个按钮?我试过了,
driver.SwitchTo().Frame(0);
driver.FindElement(By.Name("No")).Click();
也尝试了,
driver.SwitchTo().Alert().Accept(); --> this works for confirm message
所以基本上我试图点击这个对话框的按钮而不能。
答案 0 :(得分:1)
考虑到您在问题中粘贴的代码以及评论中提供的按钮的HTML(您应该编辑问题并将HTML按钮放在问题中),您的WebDriver代码将找不到该按钮。 button元素没有name
属性,因此使用By.Name()
定位器策略无法找到它。
意识到尝试通过文本查找元素通常不是一个好方法。话虽如此,您可以尝试以下内容:
// WARNING!! Untested code below. May not be exactly correct.
driver.FindElement(By.XPath("//div[contains(., 'No')]"));