【发布时间】:2020-03-03 21:09:25
【问题描述】:
填写完所有字段后,我已经有好几天无法保存表单了。我可以点击保存按钮,但没有任何反应。页面保持原样,不显示任何已保存的内容,也没有显示运行脚本的错误。
这是网站 HTML 的摘录(它是一个内部网网站,因此公众无法访问)和我收集的 python 代码的摘录。
我测试了几种不同的提交方式(xx.click()、xx.submit()、execute_script() 等...)均无济于事。我也尝试调用 javascript 而不是单击按钮,但这也不起作用。任何帮助将不胜感激。
- 此处是网页的 HTML 摘录:
<INPUT onclick=clearDirty();javascript:saveForm(); class=button type=button
value=Save>
- 这里是我尝试使用但没有成功的 Python 脚本:
saving = driver.find_element_by_xpath ('//input[@value = "Save"]')
saving.click()
我还测试了通过 selenium 执行 JS。这会引发 Traceback“未定义不是构造函数”,我的按钮没有被点击或我的表单没有被保存:
Saving = driver.find_element_by_xpath('//input[@value = "Save"]')
driver.execute_script("arguments[0].click();", Saving)
然后我对此进行了测试,认为 JS 可能想要重新加载我所在的页面并可能想要“返回”一些东西。这会引发 Traceback“未定义不是构造函数”,我的按钮没有被点击或我的表单没有被保存:
nextpage = driver.execute_script("return arguments[0].click();", Saving)
print ("NEXTPAGE:", nextpage, type(nextpage))
【问题讨论】:
-
这里的代码太多了,很难理解/理解你所问的问题出在哪里。您是说网络驱动程序按下了保存按钮,但是没有任何反应?您是否尝试过调试到该点,然后在到达该部分时尝试自己手动按下保存按钮?结果如何?
-
这听起来像X-Y problem。与其寻求解决问题的帮助,不如编辑您的问题并询问实际问题。你想做什么?
-
感谢@PreciseMotion。我废弃了几行代码,但留下了“saveform”功能和我要保存的表格。我正在使用无头 PhantomJS 浏览器,因此我无法自己单击按钮。但是,在 IE 中打开网站时,我可以看到当我单击保存按钮时它会执行 POST。我怀疑在 PhantomJS 中单击保存时不会发生这种情况。
-
@DebanjanB 感谢您提出问题 DebanJanB。我很想编辑这个问题。我的问题是当我点击保存按钮时没有任何反应。应该保存表单并将数据添加到表中,但没有任何反应。没有错误,什么都没有。我希望这会有所帮助。
-
@PreciseMotion 可能指向该问题的另一条评论:尝试在 Chrome 或 Firefox 中手动单击“保存”按钮时,也没有任何反应。该按钮仅在我使用 IE 时有效。
标签: javascript python html ajax selenium