2015-05-06 28 views
1

我需要使用PhantomJS编写一些测试。基本上我需要提交表单,但为此我需要存储在MySQL数据库中的数据。如何将数据从Python发送到PhantomJS?

我正在考虑使用Python并从Python调用PhantomJS,但我不知道将数据传递给PhantomJS脚本的最佳方式是什么。

例如,我可以通过命令行传递一个JSON?

$ phantomjs script.js "{first_name: 'Peter', last_name: 'Brown'}" 

请指导我如何做到这一点。

回答

0

要使用Python代码编写浏览器测试,最好的选择是Selenium Web Driver其中有phantomjs backend。存在Python test frameworks and libraries, like Splinter, which aid in this use case

另一方面,如果你想让phantomjs脚本调用Python代码,你需要产生Python进程来执行Python脚本,然后通过文件/管道/其他通信通道返回数据。这要复杂得多。

另外,如果您执行PhantomJS tests in Node,则可以从PhantomJS脚本中读取您的MySQL数据库。 There is MySQL driver for Node.js。另一方面,这不再是纯粹的PhantomJS执行环境。

+0

PhantomJS具有与node.js不同的执行环境。您不能在PhantomJS中使用任意模块。所以正在工作,但更复杂的,如建议的mysql模块可能无法正常工作。 –

+0

@ArtjomB。啊 - 这是有道理的。没有办法使用Node本身运行phantomjs测试? –

+0

当然,可以使用像https://github.com/sgentle/phantomjs-node这样的桥梁,但语法略有不同。 –