如何在Python程序中嵌入Web浏览器?它需要在Linux上运行(GTK,Qt都可以),或者跨平台。我已经看过了嵌入pywebgtk和Qt的WebKit小部件。但是这些似乎只有渲染引擎。特别是,我想要支持后退/前进和选项卡式浏览。类似于这样的东西是否预打包好了,还是我必须自己实现?wxWebConnect似乎大致符合我的想法,但它没有Python绑定。
http://pypi.python.org/pypi/selenium/2.7.0
您可以安装Selenium软件包,并在同一台机器上运行一个服务器(只是不同的进程),然后通过您的Python代码连接到它:
java -jar selenium-server-standalone-2.7.0.jar
接下来:
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
import time
browser = webdriver.Firefox() # Get local session of firefox
browser.get("http://www.yahoo.com") # Load page
assert "Yahoo!" in browser.title
elem = browser.find_element_by_name("p") # Find the query box
elem.send_keys("seleniumhq" + Keys.RETURN)
time.sleep(0.2) # Let the page load, will be added to the API
try:
browser.find_element_by_xpath("//a[contains(@href,'http://seleniumhq.org')]")
except NoSuchElementException:
assert 0, "can't find seleniumhq"
browser.close()
您可以使用subprocess
在Python代码中启动服务器。
firefox
立即返回,所以你无法知道用户何时退出浏览器。chromium-browser
似乎不支持单独的配置文件(即使你指定--user-data-dir=/tmp/somedir
,默认配置文件中保存的密码仍然会出现!) - Mechanical snail