Ang*_*gio 5 python selenium wxpython selenium-webdriver
我正在尝试编译一些我用Python和库Selenium编写的代码.但是,Selenium会指定要使用的浏览器
例如
driver = webdriver.Firefox()
Run Code Online (Sandbox Code Playgroud)
因此,如果我将程序编译成.exe或其他形式的可执行文件,然后将其运行到没有Firefox的计算机中,它将无法正常工作.那么有没有办法告诉Selenium只使用默认浏览器?或者有一种方法让我在同一个程序文件夹上有一个可移植版本的Firefox(有点像Tor Bundle那样)所以它有效吗?
我想到了创建一堆嵌套的try/excepts并以这种方式尝试每个可能的浏览器的解决方案,但我认为可能有更好的方法.
编辑:如果有人指出我在wxPython窗口中显示selenium的一般方向,我也将不胜感激.
一种可能的逻辑是
browser = get_default_browser_name()
if browser = firefox
then launch firefox
if browser = chrome
then launch chrome
if browser = ie
then launch ie
Run Code Online (Sandbox Code Playgroud)
第一步可能很棘手,Windows 上的 C# 可以通过注册表进行。不确定如何用 Python 编码或如何处理 Linux/Mac 等其他系统。
但是,您的想法最终不会按预期工作,因为 Selenium 版本需要与浏览器版本匹配。
例如,如果你的程序中有 Selenium 2.40.0,但有些用户使用 Firefox Nightly(即 FF30),那么它就不起作用,因为 Selenium 目前不支持 FF30。
Chrome 也是如此,不同版本的 ChromeDriver 支持不同版本的 Chrome。您如何知道需要包含哪个 ChromeDriver?ChromeDriver 2 支持 Chrome 27 及以上版本,每个版本都有更具体的版本要求,请参阅此处的发行说明。如果有人使用 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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
948 次 |
| 最近记录: |