尝试测试Flask应用程序时,Selenium Web驱动程序挂起

时间:2020-10-10 08:41:36

标签: python selenium flask testing

我正在尝试为我的Web应用程序编写自动化测试,但遇到一个奇怪的问题;

尝试呼叫driver.get('https://my-local-app-url:port')时,Chrome只是挂起,而从未真正打开URL。但是,在Google.com上使用driver.get()时,效果很好。

这是我设置所有内容的方式:

“测试”:

class TestApp:
def test_app(self, chrome_browser, app):
    chrome_browser.get('https://google.com') << this line execute just fine
    app.run(host='127.0.0.1', port=8000)
    chrome_browser.get('http://127.0.0.1:8000/') << this one does not execute

conftest.py:

@pytest.fixture(scope="session")
def chrome_browser():
    browser = webdriver.Chrome()
    return browser

@pytest.fixture(scope="session")
def app():
    app = create_app()
    return app

create_app函数:

def create_app():
    app = Flask(__name__)
    app.register_blueprint(blueprint)
    return app

*在测试之外,函数create_app正常工作并返回Flask对象。 *我的Chrome驱动程序和chrome版本为86.04240.22。

1 个答案:

答案 0 :(得分:1)

我想,app.run()调用正在阻塞,并且仅在flask服务器停止后才执行该行之后的所有代码。您可以使用app.run(debug=True, use_reloader=False)在具有某些限制的单独线程中启动flask,但是更合乎逻辑的方法是在单独的类中实现硒集成测试,并将其作为单独的进程启动。