我需要选中复选框,但点击功能失败。
我的网页中有按钮:
<button type="button" class="ui-multiselect ui-widget ui-state-default ui-corner-all" aria-haspopup="true" style="">
spans...
</button>
我们有复选框:
<ul class="classa123 classb123" style="">
<li class=" ">
<label class="classoflabel" title="" for="checkbox-123">
<input type="checkbox" title="Select This" value="1" name="multiselect-box-type" id="checkbox123">
<span>Select This</span>
</label></li>
...
如何选择此复选框?
使用 find_element_by_id("checkbox123").is_selected()
我发现复选框未选中,但是当我尝试 .click() 时它失败了。我想也许我应该首先通过单击按钮打开复选框,但该按钮没有唯一的 ID 或类。
我正在使用 selenium webdriver 和 python。如果您知道如何解决这个问题,您也可以用其他语言编写代码。
谢谢...
最佳答案
好的,我想我明白你需要的了。首先,如果您使用 jQuery,则可以使用任何 CSS 选择器作为选择器来获取元素。例如,要获取 id
为 checkbox123
的输入,您只需:
$('#checkbox123')
但是,如果您想要 ul
中的输入复选框
集合,那么您可以选择如下:
$('ul input[type=checkbox]')
最后,判断是否被检查非常简单。
var checked = $('#checkbox123').is(':checked');
// see your result in developer console with
console.log(checked); // will be `true` or `false`
如果您尝试在单击按钮后获取跨度(带有文本选择此
),您可以尝试以下操作:
$('button').click(function(e) {
$('ul input[type=checkbox]:checked').each(function(i) {
var span = $(this).next('span');
alert(span.text())
});
})
<小时/>
最后一次调用,如果需要更改复选框的状态,请使用 .prop
在 checked
上使用 bool 值。如:
$('#checkbox123').prop('checked', true); // will make it checked
$('#checkbox123').prop('checked', false); // will uncheck it
我相信自上次回答问题以来这可能已经更新,因此我将在此处更新答案以显示明显缺少的内容。
最后,使用 jQuery 触发事件(例如 click
)非常简单。还有几种方法可以做到这一点,有些基本上是相同的。
最简单的是使用.click()
。很简单:
$('#checkbox123').click();
下一次使用的是.trigger()
。基本上与 .click
相同。 Really this is just about personal use in readability .
$('#checkbox123').trigger('click');
请记住,如果您正在使用它,但它不起作用。您的选择器可能有问题。确定的一种方法是控制台记录它。如果您没有看到包含您期望的元素的 jQuery OBject 元素打印到控制台,那么您就知道您的选择器不起作用。请记住,无论如何,这都会显示一个 jQuery 对象,但其中不会包含 HTML 元素。
console.log($('#checkbox123').trigger('click'));
如果存在,将类似于:
[input#checkbox123, context: document, selector: "#content", jquery: "1.9.......and so on for rest of object
如果不存在,将类似于:
[context: document, selector: "#checkbox123", jquery: "1.9.......and so on for rest of object
关于jquery - 选择隐藏在按钮下的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20244447/