我有一个注册表单,我正在使用Selenium进行测试。在使用jQuery加载表单页面之后,我使用$('input[input!='submit']', 'select').val('')
重置表单字段,然后通过selenium输入所有必填字段。最后,当输入所有必填字段并单击提交按钮时,没有任何反应!注意:我可以看到selenium click事件已触发(当按钮突出显示时),但页面未加载结果页面。
如果我使用相同的jQuery在普通浏览器上手动尝试,然后单击提交按钮,它可以正常工作。此外,我回顾了提交按钮的HTML内容,并在jQuery执行后保持不变。
<input type="submit" value="doThat" name="submit">
答案 0 :(得分:0)
你有一些错别字。
(1)输入元素的属性为type
,而不是input
。
<input type='submit'>
bad: $('input[type=input]')
good: $('input[type=submit]')
(2)必须传递给jQuery一个字符串,而不是几个字符串:
bad: jQuery('input', 'select')
good: jQuery('input, select')
(3)要将空值.val('')分配给select,空值必须是其中一个选项。
bad: SELECT options: ['a', 'b']
good: SELECT options: ['', 'a', 'b']
我正在使用python,所以这样做是正确的(使用 execute_script 使用 jQuery 而不是 $ 来防止错误):
driver.execute_script(
"jQuery('input[type!=submit], select').val('');"
)
提交表单有两种方法:
(1)自己,搜索提交输入和.submit()它:
driver.find_element_by_css_selector('input[type=submit]').submit()
(2)或让selenium为你搜索提交(在某些HTML中) 结构失败):
any_form_element = driver.find_element_by_css_selector('select')
any_form_element.submit()