selenium webdriver 之 Chrome -headless set proxy 暨 自动化测试中无头谷歌浏览器设置代理

来源:互联网 发布:curl post json 编辑:程序博客网 时间:2024/06/01 09:09

selenium webdriver 之 Chrome -headless set proxy 暨 自动化测试中无头谷歌浏览器设置代理

众所周知PhantomJS 很好用, 但是确实版本有点旧了。 直至今年Chrome/Firefox 终于有了正式的headless mode无头模式。就让我们探讨一下吧。

当我们使用Chrome 有头模式的时候,代理自然不是问题。
但是当我使用Chrome -headless 时发现,系统IE/CHROME 设置的代理却不生效。

找到selenium 官方文档有关proxy资料。并没有找到直接的例子。
文档中说道:CHROME PROXY 与 IE 是相似。但是到目前未知还没有实际例子。(当我撰写本文时,发现已经找不到该网址)

于是我参照IE例子有了:

# _*_ coding:utf‐8 _*'''@描述:chrome -headless with proxy -- baidu@作者:wuyanhui@版本:V1.0@创建时间:2017/11/15 16:47'''from selenium import webdriver# ---chromechrome_executable_path = r"E:\Program Files (x86)\wyhdriver\chromedriver.exe"PROXY = "http://10.18.97.76:3128"if __name__ == '__main__':    # 配置项目    # Create a copy of desired capabilities object.    # 在windows系统:chrome driver 默认使用的是IE代理设置。而例如Firefox可以自行配置proxy    desired_capabilities = webdriver.DesiredCapabilities.INTERNETEXPLORER.copy()    # Change the proxy properties of that copy.    desired_capabilities['proxy'] = {        "httpProxy": PROXY,        "ftpProxy": PROXY,        "sslProxy": PROXY,        "noProxy": None,        "proxyType": "MANUAL",        "class": "org.openqa.selenium.Proxy",        "autodetect": False    }    # 创建的新实例驱动    options = webdriver.ChromeOptions()    options.add_argument('headless')    # options.add_argument('window-size=1200x600')    driver = webdriver.Chrome(executable_path=chrome_executable_path,chrome_options=options,desired_capabilities=desired_capabilities)    # 尝试访问登陆页面    for neti in range(0, 3):        SUCCESS = True        try:            driver.get('http://www.baidu.com')            driver.implicitly_wait(3)  # wait seconds 等待页面加载        except Exception as e:            SUCCESS = False            print(e)            continue        if SUCCESS:            break    print(driver.page_source)    print("--finish--")    driver.quit()    exit(0)

怎么样,可以了吧。如有问题可以留言共同学习呦。

阅读全文
0 0
原创粉丝点击