Wil*_*Hua 4 python firefox internet-explorer google-chrome selenium-webdriver
我似乎无法通过Selenium 2的Python库打开谷歌浏览器或Internet Explorer.我使用的是Windows 7,64位.
我已完成以下步骤:
每当我打字:
from selenium import webdriver
driver = webdriver.Ie()
Run Code Online (Sandbox Code Playgroud)
要么
from selenium import webdriver
driver = webdriver.Chrome()
Run Code Online (Sandbox Code Playgroud)
进入Python shell,没有浏览器弹出,shell只会冻结几分钟然后输出错误信息.
IE错误消息:
selenium.common.exceptions.WebDriverException: Message: 'Can not connect to the IEDriver'
Run Code Online (Sandbox Code Playgroud)
Chrome错误消息:
urllib2.HTTPError: HTTP Error 503: Service Unavailable
Run Code Online (Sandbox Code Playgroud)
它与firefox完美搭配.有趣的是,该过程(IEDriver和ChromeDriver)是根据TaskManager启动的,但窗口永远不会出现.
在python-selenium webdriver.Ie中只是执行IEDriver.exe并通过它连接的快捷方式webdriver.Remote.例如,您可以从命令行启动IEDriver.exe:
> IEDriverServer.exe
Started InternetExplorerDriver server (64-bit)
2.39.0.0
Listening on port 5555
Run Code Online (Sandbox Code Playgroud)
并替换webdriver.Ie()为以下代码:
webdriver.Remote(command_executor='http://127.0.0.1:5555',
desired_capabilities=DesiredCapabilities.INTERNETEXPLORER)`
Run Code Online (Sandbox Code Playgroud)
你会得到相同的结果.
特别是在您的情况下,您很可能有一些系统代理设置强制它通过代理服务器连接到127.0.0.1.可能正如您在回答Python中所述禁用它:在urllib2中禁用http_proxy,您可以解决问题:
import selenium
import urllib2
from contextlib import contextmanager
@contextmanager
def no_proxies():
orig_getproxies = urllib2.getproxies
urllib2.getproxies = lambda: {}
yield
urllib2.getproxies = orig_getproxies
with no_proxies():
driver = selenium.webdriver.Ie()
driver.get("http://google.com")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3166 次 |
| 最近记录: |