硒不点击元素

时间:2019-02-25 18:26:08

标签: python selenium

我有以下复选框元素:

<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()  

当我运行代码时,它运行时没有任何错误,但在站点上仍未选中该复选框。可能是什么原因造成的,这是他们选中该框的另一种方式吗?

2 个答案:

答案 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()