2010-01-22 127 views
4

我试图创建一个简单的脚本来打开一个本地托管的网站,用于在2个或更多浏览器中测试css。默认浏览器是IE7,它打开页面正常,但是当我尝试打开非默认浏览器(如Firefox或Arora)时,它只是失败。Python ::如何在非默认浏览器中打开页面

我正在使用webbrowser模块,并尝试了这种方式,详见网站上的各个站点。

这是可能的,如果是的话如何?

+2

你是如何尝试使用其他浏览器打开它的? – Geo 2010-01-22 13:45:25

+1

你正在收到什么错误信息? – 2010-01-22 14:04:15

+0

我正在使用webbrowser.get()调用来传递我尝试打开的浏览器的各种名称。我也尝试传递完整路径,然后使用webbrowser.register()函数。 我经过一番深入研究后得到的错误消息在webbrowser模块的第52行被抛出,并且因为无法找到指定的浏览器而被抛出。 – 2010-01-23 08:56:15

回答

3

马特的权利,它是知道一个非常有用的模块...

18.1. subprocess

IDLE 2.6.2  
>>> import subprocess 
>>> chrome = 'C:\Users\Ted\AppData\Local\Google\Chrome\Application\chrome.exe' 
>>> chrome_args = 'www.rit.edu' 
>>> spChrome = subprocess.Popen(chrome+' '+chrome_args) 
>>> print spChrome.pid 
2124 
+0

这是正确的,但你应该引用路径,甚至可能是URL。 – 2010-01-22 16:46:42

+0

我会放弃这一点。谢谢我没有想过这样做! – 2010-01-23 08:57:16

+0

Yeap就是这么做的。感谢您的建议。 – 2010-01-25 10:15:00

0

这基本上可以归结为:

- run 'firefox "url"' 
- run 'iexplore "url"' 
- run 'other_browser "url"' 

我不知道够不够蟒蛇知道system()调用是如何实现的有,但它应该是相当简单。

1

subprocess module应该提供你想要的东西,如果你给子进程提供浏览器的路径。请注意,您需要Python 2.4或更高版本才能使用子进程,但现在很常见。

更新 - 方法的代码来调用浏览器,同时打开一个URL中传递:

def startChrome(url): 
    """ Calls Chrome, opening the URL contained in the url parameter. """ 
    executable = 'path-to-chrome' # Change to fit your system 
    cmd = ' '.join([executable, url]) 
    browswer_proc = subprocess.Popen(cmd, shell=True) 
+0

感谢提示,正如我上面所说,我没有想过这样做。 – 2010-01-23 08:57:44

相关问题