如何在Python3程序中正确调用Firefox?

1 投票
2 回答
582 浏览
提问于 2025-04-20 03:02

我想通过在 Python 3 中调用命令来启动 Firefox,并打开一个网页。我想打开的网址是 https://schwab.com

我在命令行中尝试用下面的方式打开:

C:\Python34\hsf\WSC>C:\Program Files(x86)\Mozilla Firefox\firefox.exe https://schwab.com

但是因为路径中有空格,它无法正常工作。

不过,我可以用下面的方式成功打开:

C:\Progra~2\Mozill~1\firefox.exe https://schwab.com

这样在命令行中就能正常运行。

所以我把这个地址作为参数放进我的 Python 程序中的 os.system 里,但出现了错误:

'C:\Progra~2\Mozill~1' 不是内部或外部命令,也不是可运行的程序或批处理文件。

我尝试在 os.startfile 中使用这个地址,结果得到了错误信息:

在 Tkinter 回调中出现异常

追踪(最近的调用在最前面):

文件 "C:\Python34\lib\tkinter__init__.py",第 1482 行,在 call

返回 self.func(*args)

文件 "C:\Python34\hsf\WSC\fm.py",第 59 行,在 Schwab 中

res=os.startfile('C:\Progra~2\Mozill~1\firefox.exe https://schwab.com')

文件未找到错误:[WinError 2] 系统找不到指定的文件:

'C:\Progra~2\Mozill~1\x0cirefox.exe https://schwab.com'

注意到它正确地回显了我的参数,但文件未找到错误中插入了字符串 x0cire 在 '\' 和 'firefox' 之间。

我删除并重新输入了 '\f',结果还是插入了同样的错误字符串。

为了避免路径问题,我把 firefox.exe 复制到了我的文件夹里,但它在其他地方无法运行。

那么,我该如何正确地从 Python 3 程序中调用 Firefox 呢?

2 个回答

1

我建议你试试selenium,这是一个适用于Python的网页驱动程序接口,它可以和Firefox、Chrome等很多浏览器一起使用。你可以完全控制浏览器,做你想做的事情!

3

这要看你想用这个网站做什么。如果你只是想打开网页,可以使用webbrowser模块来打开网址。

import webbrowser

webbrowser.open('https://www.schwab.com/')

如果你需要做一些更复杂的事情,可以使用Selenium模块来以各种方式与网页进行互动。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()
driver.get("http://www.python.org")
assert "Python" in driver.title
elem = driver.find_element_by_name("q")
elem.send_keys("selenium")
elem.send_keys(Keys.RETURN)
driver.close()

撰写回答