通过selenium webdriver测试Chrome时,我遇到了一种非常奇怪的行为。
而不是像人们期望的那样导航到页面。命令仅导致从目标站点下载小文件(无类型或.apsx文件)。
重要的是 - 当我将chrome_options
作为参数传递时,才会出现此行为
到Chrome驱动程序。
相同的测试脚本与firefox驱动程序完美配合。
代码:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options # tried with and without
proxy = '127.0.0.1:9951' # connects to a proxy application
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--proxy-server=%s' % proxy)
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get('whatismyip.com')
导致自动下载名为download(无文件扩展名,Size 2 Byte)的文件。 调用其他站点导致下载小的aspx文件。 当浏览器页面保持空白且没有与之交互时,这一切都会发生 元素发生=网站根本没有加载。
除了element not found
之外,没有错误消息。
这真的很奇怪。
其他信息: 我运行Debian Wheezy 32位并使用Python 2.7。
有关如何解决此问题的任何建议吗?
答案 0 :(得分:0)
我尝试了您的代码,并通过SSH使用SOCKS v5代理捕获了localhost上的流量。它肯定是通过代理发送数据,但没有数据回来。我已经确认代理正在使用Firefox。
我在Ubuntu 14.04 LTS 64位上运行Google Chrome。当我尝试在其设置菜单中配置代理时,我的Chrome浏览器会向我显示以下消息:
在支持的桌面环境下运行Google Chrome时, 将使用系统代理设置。但是,要么你的系统不是 支持或启动系统配置时出现问题。
但您仍然可以通过命令行进行配置。请看男人 有关标志和环境的更多信息,请参阅google-chrome-stable 变量
不幸的是,我没有google-chrome-stable的手册页。
我还发现,根据硒文档,Chrome正在使用系统范围的代理设置,根据他们的文档,我们不知道如何以编程方式在Chrome中设置代理:http://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp#using-a-proxy