python selenium怎么配置IE和chrome的代理,求代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python selenium怎么配置IE和chrome的代理,求代码相关的知识,希望对你有一定的参考价值。

参考技术A 请参考这个代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import print_function

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

def create_proxyauth_extension(proxy_host, proxy_port,
proxy_username, proxy_password,
scheme='http', plugin_path=None):
"""Proxy Auth Extension

args:
proxy_host (str): domain or ip address, ie proxy.domain.com
proxy_port (int): port
proxy_username (str): auth username
proxy_password (str): auth password
kwargs:
scheme (str): proxy scheme, default http
plugin_path (str): absolute path of the extension

return str -> plugin_path
"""
import string
import zipfile

if plugin_path is None:
plugin_path = '/tmp/vimm_chrome_proxyauth_plugin.zip'

manifest_json = """

"version": "1.0.0",
"manifest_version": 2,
"name": "Chrome Proxy",
"permissions": [
"proxy",
"tabs",
"unlimitedStorage",
"storage",
"<all_urls>",
"webRequest",
"webRequestBlocking"
],
"background":
"scripts": ["background.js"]
,
"minimum_chrome_version":"22.0.0"

"""

background_js = string.Template(
"""
var config =
mode: "fixed_servers",
rules:
singleProxy:
scheme: "$scheme",
host: "$host",
port: parseInt($port)
,
bypassList: ["foobar.com"]

;

chrome.proxy.settings.set(value: config, scope: "regular", function() );

function callbackFn(details)
return
authCredentials:
username: "$username",
password: "$password"

;


chrome.webRequest.onAuthRequired.addListener(
callbackFn,
urls: ["<all_urls>"],
['blocking']
);
"""
).substitute(
host=proxy_host,
port=proxy_port,
username=proxy_username,
password=proxy_password,
scheme=scheme,
)
with zipfile.ZipFile(plugin_path, 'w') as zp:
zp.writestr("manifest.json", manifest_json)
zp.writestr("background.js", background_js)

return plugin_path

proxyauth_plugin_path = create_proxyauth_extension(
proxy_host="proxy.crawlera.com",
proxy_port=8010,
proxy_username="fea687a8b2d448d5a5925ef1dca2ebe9",
proxy_password=""
)

co = Options()
co.add_argument("--start-maximized")
co.add_extension(proxyauth_plugin_path)

driver = webdriver.Chrome(chrome_options=co)
driver.get("wser.org/")

Python+Selenium笔记:配置谷歌+IE环境

 #有的时候可能要访问外国的网站下载资料或工具,这时可能出现各种问题,例如谷歌人机验证显示不了、网站打不开等,建议使用一个FQ软件

(一)  设置IE

(1)   http://docs.seleniumhq.org/download/  下载IEDriverServer。(建议下载32位的,64位的驱动执行send_keys很慢,可以都下载感受下)

 

 

(2)   解压到任意目录,将路径添加到PATH变量中

(3)   Internet选项中,下面4个要么都启用保护模式,要么都不启用。

 

(4)   IE默认缩放设置为100%(已经是100%可忽略这步)

(5)   启动IDE(如果设置IEDriverServer之前已经启动,需要重启)

(6)   修改代码

将上一篇中的下面三行去掉:

from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

firefox = FirefoxBinary(r"C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe")
driver = webdriver.Firefox(firefox_binary=firefox)

修改为:

driver = webdriver.Ie()

(7)   如果是IE11,还需要在注册表(仅限于IE11,其他版本不需要)

HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Internet Explorer\\Main\\FeatureControl\\FEATURE_BFCACHE

新建DWORD  名称设置为 iexplore.exe  值设置为 0

完成设置后的效果如下图(如果找不到FEATURE_BFCACHE,就新建一个项):

 

(8)   官方文档中关于IE11浏览器设置的说明(英文不好略坑,还好有翻译软件,连猜带蒙)

https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver

 

(9)   如果是WIN 10,还要把下面的设置100%

 

(10)  IE启动的时候会弹出下面的提示,看字面意思,这个不是错误,只是说WebDriver服务器启动。

 

(二)  设置谷歌

(1)   http://docs.seleniumhq.org/download/ 下载Google Chrome Driver

(2)   解压到任意目录,将路径添加到PATH变量中

(3)   启动IDE(如果设置chromedriver之前已经启动,需要重启)

(4)   修改代码

将上一篇中的下面三行去掉:

from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

firefox = FirefoxBinary(r"C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe")
driver = webdriver.Firefox(firefox_binary=firefox)

修改为:

driver = webdriver.Chrome()

以上是关于python selenium怎么配置IE和chrome的代理,求代码的主要内容,如果未能解决你的问题,请参考以下文章

Python3+Selenium2完整的自动化测试框架实现:IE和Chrome浏览器驱动配置

win10selenium之Firefox,Chrome,IE对应webdriver的安装配置

Selenium的IE驱动

Python+Selenium基础篇之3-打开和关闭IE/Chrome浏览器

目前在用selenium python做自动化测试,使用IE时Send_keys()写入时几秒钟蹦一个字符,请问如何加快速度呢

Python+Selenium自动化测试框架-打开和关闭浏览器(Firefox/IE/Chrome)