我有以下复选框元素:
<input checked="checked" class="iceSelBoolChkbx"
id="mainContentId:newSerchCheckBox" name="mainContentId:newSerchCheckBox"
onblur="setFocus('');"
onclick="var form=formOf(this);iceSubmitPartial(form, this, event);"
onfocus="setFocus(this.id);"
onkeypress="var form = formOf(this);
Ice.util.radioCheckboxEnter(form,this,event);"
type="checkbox">
我目前正在查找元素,并尝试使用
单击它check_box = driver.find_element_by_id('mainContentId:newSerchCheckBox')
check_box.click()
当我运行代码时,它运行时没有任何错误,但在站点上仍未选中该复选框。可能是什么原因造成的,这是他们选中该框的另一种方式吗?
答案 0 :(得分:1)
尝试用mousedown代替click,我不知道潜在的区别是什么,但是它解决了我在click()上遇到的问题。
driver.execute_script('$("#mainContentId:newSerchCheckBox").trigger("mousedown")')
让我知道您是否抛出错误,我们可以用纯Javascript重写它,而不必依赖jQuery。
答案 1 :(得分:0)
如果您看到输入标签checked="checked"
,我认为您的复选框已被选中。因此,您需要首先检查是否已选中。如果选中,则不要单击。
element=driver.find_element_by_id("mainContentId:newSerchCheckBox")
if element.is_selected():
print('Check box is already selected')
else:
element.click()