从python启动selenium(子流程.Popen对比。操作系统)

2024-10-03 04:27:15 发布

您现在位置:Python中文网/ 问答频道 /正文

在引导测试时,我使用python中的subprocess.Popen启动selenium2jar文件。在

这在FF上运行得很好,但是当我尝试启动googlechrome时,它无法加载页面(得到一个“Aww,snap”错误),它试图在一个奇怪的地方寻找它的个人资料:$SELENIUM_JAR/"/var/folders/Qg/QgltsVp+FL0PDThAc5yUeE+++TM/-Tmp-/customProfileDir2e33faaabf3d4fb18491510228814229"/Default/Bookmarks

作为一个测试,我尝试手动启动selenium,结果很好,接下来我尝试使用os.system来代替它,让我惊讶的是,它工作得很好。在

使用os.system有许多缺点,比如不能杀死selenium,也不能捕获输出。在

我的open命令如下所示:

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_executejava -jar selenium-server.jar -userExtensions user-extensions.js -port 4444

我可以补充说,我尝试过搞乱shell=False,删除了stdio并通过`/bin/bash-c'启动,但没有得到任何不同的结果

你知道我遗漏了什么吗?在


Tags: 文件toselfexecuteosseleniumshellsystem
2条回答

我只接受这个问题与python无关,而与我的框架有关。在

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

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

相关问题 更多 >