我可以从python3程序调用firefox的正确方法是什么?

时间:2014-09-06 01:32:16

标签: python firefox operating-system

我正在尝试通过在python 3中调用它作为os.system或os.startfile的参数来启动带有Internet页面的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回调中的异常 Traceback(最近一次调用最后一次):   文件“C:\ Python34 \ lib \ tkinter__init __。py”,第1482行,调用     return self.func(* args)

文件“C:\ Python34 \ hsf \ WSC \ fm.py”,第59行,施瓦布

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

FileNotFoundError:[WinError 2]系统找不到指定的文件:

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

请注意,它正确地回应了我的论点,但是FileNotFoundError已经在'\'和'firefox'之间插入了字符串x0cire

我删除并重新输入了'\ f',并插入了相同的错误字符串。

为避免这条路径,我将firefox.exe复制到我的文件夹中,但它不会在其原生环境之外运行。

我可以从python3程序调用firefox的正确方法是什么?

2 个答案:

答案 0 :(得分:3)

这取决于您对此网站的要求。如果要打开页面,请使用webbrowser module打开网址。

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()

答案 1 :(得分:1)

我建议您尝试使用selenium适用于Python的网络驱动程序API,该API适用于Firefox,Chrome等等。除了您需要的,您还可以完全控制浏览器!