如何使用Splinter单击Enter?

时间:2013-09-07 15:47:08

标签: python splinter

这是我的Splinter代码 -

b = Browser()
b.visit("http://boingboing.net")
b.fill("q", "OpenXC")

此时,我想按“Enter”键进行搜索。

这与Splinter教程页面中的示例非常相似。在这种情况下,实际上没有按钮元素存在。

我看到此搜索框是一个带有ID“cse-search-box”的Google搜索框。我不知道如何在这里触发搜索。

你能帮帮忙吗?

下面的Metaphy(感谢,顺便说一句)代码为我生成了追溯 -

  

追踪(最近一次通话):       文件“/Users/muthu/Desktop/boing.py”,第5行,in       b.execute_script( 'document.getElementsByName( “F”)[0] .submit()')       文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/splinter/driver/webdriver/init.py”,第58行,在execute_script中       self.driver.execute_script(脚本)       在execute_script中输入文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py”,第397行       {'script':script,'args':converted_args})['value']       文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py”,第165行,执行       self.error_handler.check_response(响应)       在check_response中输入文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py”,第158行       提出exception_class(消息,屏幕,堆栈跟踪)       WebDriverException:消息:你正在等待evaluate.js加载失败';堆栈跟踪:       at r(file:///var/folders/5r/06jrtyyn2kd8ty05m71lm0hr0000gn/T/tmpBFCIVe/extensions/fxdriver@googlecode.com/components/driver_component.js:8360)       at fxdriver.Timer.prototype.runWhenTrue / g(file:///var/folders/5r/06jrtyyn2kd8ty05m71lm0hr0000gn/T/tmpBFCIVe/extensions/fxdriver@googlecode.com/components/driver_component.js:392)       at fxdriver.Timer.prototype.setTimeout /< .notify(file:///var/folders/5r/06jrtyyn2kd8ty05m71lm0hr0000gn/T/tmpBFCIVe/extensions/fxdriver@googlecode.com/components/driver_component.js:386)

1 个答案:

答案 0 :(得分:3)

我无法访问http://boingboing.net网站,因此我以baidu.com为例:

from splinter.browser import Browser
b = Browser('firefox')
b.visit('http://www.baidu.com')
b.fill('wd', 'test')
b.execute_script('document.getElementsByName("f")[0].submit()')

新答案:

browser.fill('some_name', 'some_value\r')