编辑:虽然原始问题得到了解决,但代码实际上并没有做任何事情。在Chrome上测试后,它会在密码框中插入“hi”。在Spynner中,它只是加载页面。
我正在尝试使用Spynner抓取我的学校用来提供在线时间表的网站。由于某些原因,我总是得到以下错误:
Run Javascript code: jq("[class^=login-text-box]").val("hi")
Javascript console: ReferenceError: Can't find variable: jq这是由以下代码引起的:
import spynner
browser = spynner.Browser()
browser.debug_level = 3;
browser.show()
browser.load("http://web.edval.com.au/#publicaccess")
browser.runjs('_jQuery("[class^=login-text-box]").val("hi")')
browser.close()我也尝试过:
import spynner
browser = spynner.Browser()
browser.debug_level = 3;
browser.jslib = 'jq'
browser.show()
browser.load("http://web.edval.com.au/#publicaccess")
browser.runjs('jq("[class^=login-text-box]").val("hi")')
browser.close()同样缺乏成功。将JavaScript命令粘贴到Chrome的JS控制台(在我注入jQuery之后)可以完美地工作。
有人能提供一些帮助吗?
谢谢!
发布于 2012-11-27 17:31:26
不要紧,尽管文档说jQuery将作为_jQuery加载,但它实际上是作为$加载的。我通过将代码更改为:
import spynner
browser = spynner.Browser()
browser.load_jquery(True)
browser.debug_level = 3;
browser.show()
browser.load("http://web.edval.com.au/#publicaccess")
browser.runjs(browser.jslib+'("[class^=login-text-box]").val("hi")')
browser.close()请注意,runjs现在实际上检查了browser.jslib。
https://stackoverflow.com/questions/13580847
复制相似问题