一个可能的逻辑是
>首先缺陷系统的默认浏览器是什么
>然后在你的Selenium代码中,使用一个开关,比如
browser = get_default_browser_name()
if browser = firefox
then launch firefox
if browser = chrome
then launch chrome
if browser = ie
then launch ie
第一步可能很棘手,Windows上的C#可能来自注册表.不确定如何在Python中编写代码或如何处理其他系统,如Linux / Mac.
但是,您的想法毕竟不会按预期工作,因为Selenium版本需要与浏览器版本匹配.
例如,如果你的程序中有Selenium 2.40.0,但有些用户使用Firefox Nightly(这是FF30),那么它将不起作用,因为Selenium目前不支持FF30.
Chrome也是如此,不同版本的ChromeDriver支持不同版本的Chrome.你怎么知道你需要包含哪个ChromeDriver? ChromeDriver 2支持27及更高版本的Chrome,每种版本都有更多特定的版本要求,请参阅发行说明here.如果有人使用Chrome 26或以下版本怎么办?更麻烦.
我建议你包括你自己的便携式Firefox,然后在启动浏览器时指定二进制位置.
from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
binary = FirefoxBinary('path/to/binary')
driver = webdriver.Firefox(firefox_binary=binary)