【问题标题】:How to test a script that relies on selenium?如何测试依赖硒的脚本?
【发布时间】:2021-06-17 12:43:01
【问题描述】:

我在 Python 学习中达到了这一点,我编写了一个脚本,该脚本部分依赖于使用 Selenium 来抓取动态创建的网页(与 Requests 和 BeautifulSoup 无关)。

但是,我应该如何测试脚本的这些部分?

是否有专门的库来处理这个问题?我必须开发一个假网站(!)吗?还是脚本有效这一事实使得无需对其进行测试?

PS:我知道 Selenium 最初是为了开发目的而创建的,而不是为了网络抓取

【问题讨论】:

    标签: python selenium testing pytest python-unittest


    【解决方案1】:

    查看 TestNGCucumber 以及 Jasmine 报告。您的脚本可以运行的事实暂时应该是一个证明,但是要获得完整的测试报告,您必须使用上述工具。

    此外,为什么不将源自Selenium 的页面源输入BeautifulSoup 并让它处理抓取部分。破坏BeautifulSoupRequests 的能力是难以忍受的。

    【讨论】:

    • TestNG 用于 Java,而不是 Python。 OP,如果您想在 selenium 之上添加一些测试功能,请查看 unittest 或 pytest
    • @CodeWalker:我编辑了我的帖子,以反映这样一个事实,即我正在抓取的网页内容是动态创建为滚动的,并且其内容无法提供给 Requests 和 BeautifulSoup,这些功能是否则非常感谢。因此,我依赖 Selenium。
    • @JD2775:确实,TestNG 在这里似乎没有帮助。您能否详细说明如何在我的情况下使用 unittest 或 pytest?
    • @CygnusX 您可以使用它们围绕您的 selenium 方法添加一个测试框架。例如,如果您期望特定的 Selenium 操作返回 X,您可以针对该操作编写测试并使用 unittest Assert 方法来确保返回 X。这完全取决于预期结果与实际结果。 Unittest 内置在 Python 中,Pytest 是您可以选择的另一个测试框架
    • 或者,如果您不关心最终数据并测试它是否正确,您可以添加断言当您单击它们时存在 Web 元素?还是送钥匙?再说一次,如果他们不存在,你的脚本无论如何都会失败。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多