【问题标题】:How do I click Enter using Splinter?如何使用 Splinter 单击 Enter?
【发布时间】:2013-09-11 13:46:28
【问题描述】:

这是我的分裂代码 -

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

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

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

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

你能帮忙吗?

Metaphy 的(谢谢,顺便说一句)代码为我生成了一个回溯 -

Traceback(最近一次调用最后一次): 文件“/Users/muthu/Desktop/boing.py”,第 5 行,在 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(脚本) 文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py”,第 397 行,在 execute_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(响应) 文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py”,第 158 行,在 check_response 引发异常类(消息、屏幕、堆栈跟踪) WebDriverException:消息:u'waiting for evaluate.js load failed';堆栈跟踪: 在 r (file:///var/folders/5r/06jrtyyn2kd8ty05m71lm0hr0000gn/T/tmpBFCIVe/extensions/fxdriver@googlecode.com/components/driver_component.js:8360) 在 fxdriver.Timer.prototype.runWhenTrue/g (file:///var/folders/5r/06jrtyyn2kd8ty05m71lm0hr0000gn/T/tmpBFCIVe/extensions/fxdriver@googlecode.com/components/driver_component.js:392) 在 fxdriver.Timer.prototype.setTimeout/<.notify>

【问题讨论】:

    标签: python splinter


    【解决方案1】:

    我无法访问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')
    

    【讨论】:

    • 以上代码生成了一个回溯。详情见原帖。
    • 原则上,我可以看到你在做什么。就我而言,表单没有名称属性。所以我最终做了一个document.getELementsByTagName('form')[0].submit()。它生成了与原始帖子中相同的回溯。
    • stackoverflow.com/questions/18114544/…,更多类似问题可以搜索“evaluate.js load failed”。
    • 做到了。 sudo pip install selenium --upgrade 将 Selenium 从 2.33 更新到 2.35。然后我的代码工作了。以上是在 Mac OSX 10.8, FF23 上。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    • 2020-01-02
    • 2021-12-23
    • 2015-08-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多