【发布时间】:2011-08-01 19:24:37
【问题描述】:
当我引导我的测试时,我在 python 中使用 subprocess.Popen 启动 selenium 2 jar 文件。
这适用于 FF,但是当我尝试启动 google chrome 时,它无法加载页面(出现“Aww,snap”-错误),它试图在一个奇怪的地方寻找它的个人资料:$SELENIUM_JAR/"/var/folders/Qg/QgltsVp+FL0PDThAc5yUeE+++TM/-Tmp-/customProfileDir2e33faaabf3d4fb18491510228814229"/Default/Bookmarks
作为测试,我尝试手动启动 selenium 并且效果很好,接下来我尝试使用 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
我可以补充一点,我尝试过使用 shell=False,删除 stdio 并通过 `/bin/bash -c' 启动,但没有不同的结果
关于我缺少什么的任何想法?
【问题讨论】:
-
您的问题听起来很奇怪,不幸的是我无能为力。但是,我可以建议您使用
shutDownSeleniumServer方法(Python API 中的shut_down_selenium_server)停止 Selenium 服务器,而不是终止进程。这甚至可能使您可以使用os.system。 -
好吧,我有点需要捕获输出也显示错误并知道什么时候可以开始测试。不过谢谢,我会记住的:)
-
我刚刚意识到我已经调用了shut_down_selenium_server,问题是捕获输出。
-
我认为我们的框架还有其他问题,与 python 无关
标签: python selenium subprocess