我正在尝试通过在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的正确方法是什么?
答案 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等等。除了您需要的,您还可以完全控制浏览器!