【问题标题】:how to use flask driver in python splinter如何在 python splinter 中使用烧瓶驱动程序
【发布时间】:2016-08-10 01:30:43
【问题描述】:

我所有的代码都只是:

from splinter import Browser
from flask import Flask, request
from splinter.driver.flaskclient import FlaskClient
app = Flask(__name__)

browser = Browser('flask', app=app)
browser.visit('https://www.google.com')
print(browser.html)

打印 404 html: 404 未找到

未找到

在服务器上找不到请求的 URL。如果您手动输入了 URL,请检查您的拼写并重试。

有什么我应该做的吗?

【问题讨论】:

  • 你安装了 Firefox、Flask、lxml 和 cssselect 了吗?
  • 我已经解决了,谢谢

标签: python python-3.x splinter


【解决方案1】:

您收到 404 错误,因为您的 Flask 应用没有路由

我相信 Splinter Flask 客户端的目的是测试您的 Flask 应用程序,而不是测试/请求其他域。使用 Splinter Flask 客户端访问另一个域只会从您的域请求 URL。您尚未为 Flask 应用指定任何路由,因此 Flask 响应 404 错误。

这是一个展示 Splinter Flask 客户端如何工作的示例:

# define simple flask app
from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

@app.route('/<name>')
def hello_world(name):
    return 'Hello, {name}!'.format(name=name)

# initiate splinter flask client
from splinter import Browser
browser = Browser('flask', app=app)

# simple flask app assertions
browser.visit('http://127.0.0.1:5000')
assert browser.html == 'Hello, World!'
browser.visit('http://127.0.0.1:5000/haofly')
assert browser.html == 'Hello, haofly!'

# Notice that requesting other domains act as if it's your domain
# Here it is requesting the previously defined flask routes
browser.visit('http://www.google.com')
assert browser.html == 'Hello, World!'
browser.visit('http://www.google.com/haofly')
assert browser.html == 'Hello, haofly!'

这是另一个演示实际情况的测试:

from flask import Flask
app = Flask(__name__)

@app.errorhandler(404)
def page_not_found(e):
    return 'Flask 404 error!', 404

from splinter import Browser
browser = Browser('flask', app=app)

browser.visit('http://www.google.com/haofly')
assert browser.html == 'Flask 404 error!'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-29
    相关资源
    最近更新 更多