注入的Javascript错误(Python Web刮刀)
我之前也遇到过类似的问题,但我不明白为什么它不允许我点击复选框。我相信我在检查复选框时出错,因为选择了错误的方式 这是我的回溯:注入的Javascript错误(Python Web刮刀),javascript,python,html,css,traceback,Javascript,Python,Html,Css,Traceback,我之前也遇到过类似的问题,但我不明白为什么它不允许我点击复选框。我相信我在检查复选框时出错,因为选择了错误的方式 这是我的回溯: Traceback (most recent call last): File "C:\Python27\Sample Programs\Spynner Basic.py", line 19, in <module> br.check('input[name="AdvSearchView$SRView$_resultGrid$ctl01$chk
Traceback (most recent call last):
File "C:\Python27\Sample Programs\Spynner Basic.py", line 19, in <module>
br.check('input[name="AdvSearchView$SRView$_resultGrid$ctl01$chk"]')
File "C:\Python27\lib\site-packages\spynner\browser.py", line 846, in check
self._runjs_on_jquery("check", jscode)
File "C:\Python27\lib\site-packages\spynner\browser.py", line 394, in _runjs_on_jquery
raise SpynnerJavascriptError("error on %s: %s" % (name, code))
SpynnerJavascriptError: error on check: jq('input[name="AdvSearchView$SRView$_resultGrid$ctl01$chk"]').attr('checked', true)
我相信这与选择器上的名称错误有关。我可能错了,但我认为这是一个实际的错误。你应该向基奥基报告。 我将您的html复制到本地文档并运行您的代码(及其变体) 如果启用调试,则可以看到以下内容:
Javascript console (undefined:1): ReferenceError: Can't find variable: jq
Javascript console (undefined:1): ReferenceError: Can't find variable: jq
这毫无意义。这是一个spynner定义的变量,为什么不存在呢
如果您尝试:
browser.load('http://www.lehigh.edu/~inwww/form-test.html')
browser.uncheck('input[type=checkbox]')
browser.check('input[type=checkbox]')
它工作得很好
要获取更多调试信息,请执行以下操作:
browser.debug_level = spynner.INFO
检查api或源代码,了解您拥有的调试级别的其他选项。
我可能与事实相去甚远,所以也许其他人可以解释一下
编辑:
如果将其添加到源html源:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
它起作用了。似乎jquery没有正确注入(根据文档应该是这样的)。呃,为什么会出现下行?这是一个合理的问题,很新奇。回答你自己的问题?!?!
browser.debug_level = spynner.INFO
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>