从python启动selenium(subprocess.Popen vs. os.system)

时间:2011-04-08 20:28:49

标签: python selenium subprocess

当我启动测试时,我正在python中使用subprocess.Popen启动selenium 2 jar文件。

这适用于FF,但是当我尝试启动谷歌浏览器时,它无法加载页面(获得“哇,快照” - 错误),它试图在一个奇怪的地方寻找它的配置文件:{{1} }

作为一项测试,我尝试手动启动selenium并且工作正常,接下来我尝试使用$SELENIUM_JAR/"/var/folders/Qg/QgltsVp+FL0PDThAc5yUeE+++TM/-Tmp-/customProfileDir2e33faaabf3d4fb18491510228814229"/Default/Bookmarks代替我的意外工作正常。

使用os.system有许多缺点,例如无法杀死硒,也无法捕获输出。

我的打开命令如下所示:

os.system

self.p = subprocess.Popen(to_execute, env=os.environ, shell=True, cwd=self.path_to_selenium, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) to_execute

的位置

我可以补充说我已经尝试弄乱java -jar selenium-server.jar -userExtensions user-extensions.js -port 4444,删除了stdio并通过`/ bin / bash -c'启动了没有不同的结果

关于我缺少的任何想法?

2 个答案:

答案 0 :(得分:1)

尝试将to_execute设置为列表而不是字符串,例如:

to_execute = [
    'java', 
    '-jar', 'selenium-server.jar',
    '-userExtensions', 'user-extensions.js',
    '-port', '4444']

答案 1 :(得分:0)

我会接受这个问题与python无关,而是我的框架。