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

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

# ---chrome
chrome_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)

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

Selenium,你可以使用`options`参数来设置Chrome浏览器的行为选项。首先,你需要安装`selenium-chrome-driver`和`webdriver_manager`库,以便于管理浏览器驱动。然后,创建一个`ChromeOptions`实例并配置所需的选项。 以下是一些常见的行为选项设置: 1. **Headless模式**(无头模式):如果你不想看到浏览器窗口,可以设置headless模式。 ```python from selenium import webdriver from selenium.webdriver.chrome.options import Options chrome_options = Options() chrome_options.add_argument('--headless') chrome_options.add_argument('--disable-gpu') # 防止GPU加速导致的问题 driver = webdriver.Chrome(options=chrome_options) ``` 2. **更改分辨率**:设置浏览器窗口的大小或全屏。 ```python chrome_options.add_argument('--window-size=1920,1080') # 设置固定分辨率 chrome_options.add_argument('start-maximized') # 自动最大化窗口 ``` 3. **禁用提示**:关闭某些弹窗,如提示框、警告等。 ```python chrome_options.add_experimental_option("prefs", { "profile.default_content_setting_values.notifications": 2 # 2表示阻止 }) ``` 4. **代理设置**:如果需要使用代理,可以通过`proxy`参数设置。 ```python from selenium.webdriver.common.proxy import Proxy, ProxyType proxy = Proxy() proxy.http_proxy = 'your_proxy_url:your_proxy_port' proxy.ssl_proxy = 'your_proxy_url:your_proxy_port' proxy.add_to_capabilities(chrome_options.desired_capabilities) ``` 5. **启用开发者工具**:在调试时可能需要打开开发者工具。 ```python chrome_options.add_argument('--remote-debugging-port=9222') # 开启远程调试,默认9222端口 ``` 6. **自定义启动参数**:添加其他自定义命令行参数。 ```python chrome_options.add_argument('--disable-infobars') # 关闭信息栏 ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值