本文整理汇总了Python中selenium.webdriver.common.proxy.Proxy.add_to_capabilities方法的典型用法代码示例。如果您正苦于以下问题:Python Proxy.add_to_capabilities方法的具体用法?Python Proxy.add_to_capabilities怎么用?Python Proxy.add_to_capabilities使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类selenium.webdriver.common.proxy.Proxy
的用法示例。
在下文中一共展示了Proxy.add_to_capabilities方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: tt1
# 需要导入模块: from selenium.webdriver.common.proxy import Proxy [as 别名]
# 或者: from selenium.webdriver.common.proxy.Proxy import add_to_capabilities [as 别名]
def tt1():
desired_capabilities = DesiredCapabilities.PHANTOMJS.copy()
headers = {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
'Cache-Control': 'max-age=0',
'Connection': 'keep-alive',
'Host': 'www.dianping.com',
}
for key, value in headers.iteritems():
desired_capabilities['phantomjs.page.customHeaders.{}'.format(key)] = value
desired_capabilities[
'phantomjs.page.customHeaders.User-Agent'] = \
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) ' \
'AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 ' \
'Safari/604.1.38'
ip_port = random.choice(redis_conn1())
print ip_port
proxy = Proxy(
{
'proxyType': ProxyType.MANUAL,
'httpProxy': '%s' % ip_port # 代理ip和端口
}
)
proxy.add_to_capabilities(desired_capabilities)
print desired_capabilities
driver = webdriver.PhantomJS(desired_capabilities=desired_capabilities)
driver.set_page_load_timeout(10)
driver.get("http://www.dianping.com/shop/%s" % ['76964345', '15855144', ])
list1 = driver.find_elements_by_xpath('//div[@class="comment-condition J-comment-condition Fix"]/div/span/a')
for l in list1:
print l.text
if '403 Forbidden' in driver.page_source:
print driver.page_source
driver.close()
示例2: test_what_things_look_like
# 需要导入模块: from selenium.webdriver.common.proxy import Proxy [as 别名]
# 或者: from selenium.webdriver.common.proxy.Proxy import add_to_capabilities [as 别名]
def test_what_things_look_like(self):
bmp_capabilities = copy.deepcopy(selenium.webdriver.common.desired_capabilities.DesiredCapabilities.FIREFOX)
self.client.add_to_capabilities(bmp_capabilities)
proxy_capabilities = copy.deepcopy(selenium.webdriver.common.desired_capabilities.DesiredCapabilities.FIREFOX)
proxy = Proxy({'httpProxy': 'localhost:%d' % self.client.port})
proxy.add_to_capabilities(proxy_capabilities)
assert bmp_capabilities == proxy_capabilities
示例3: testCanAddAutodetectProxyToDesiredCapabilities
# 需要导入模块: from selenium.webdriver.common.proxy import Proxy [as 别名]
# 或者: from selenium.webdriver.common.proxy.Proxy import add_to_capabilities [as 别名]
def testCanAddAutodetectProxyToDesiredCapabilities():
proxy = Proxy()
proxy.auto_detect = AUTODETECT_PROXY['autodetect']
desired_capabilities = {}
proxy.add_to_capabilities(desired_capabilities)
proxy_capabilities = AUTODETECT_PROXY.copy()
proxy_capabilities['proxyType'] = 'AUTODETECT'
expected_capabilities = {'proxy': proxy_capabilities}
assert expected_capabilities == desired_capabilities
示例4: testCanAddAutodetectProxyToDesiredCapabilities
# 需要导入模块: from selenium.webdriver.common.proxy import Proxy [as 别名]
# 或者: from selenium.webdriver.common.proxy.Proxy import add_to_capabilities [as 别名]
def testCanAddAutodetectProxyToDesiredCapabilities(self):
proxy = Proxy()
proxy.auto_detect = self.AUTODETECT_PROXY["autodetect"]
desired_capabilities = {}
proxy.add_to_capabilities(desired_capabilities)
proxy_capabilities = self.AUTODETECT_PROXY.copy()
proxy_capabilities["proxyType"] = "AUTODETECT"
expected_capabilities = {"proxy": proxy_capabilities}
self.assertEqual(expected_capabilities, desired_capabilities)
示例5: testCanAddPACProxyToDesiredCapabilities
# 需要导入模块: from selenium.webdriver.common.proxy import Proxy [as 别名]
# 或者: from selenium.webdriver.common.proxy.Proxy import add_to_capabilities [as 别名]
def testCanAddPACProxyToDesiredCapabilities(self):
proxy = Proxy()
proxy.proxy_autoconfig_url = self.PAC_PROXY['proxyAutoconfigUrl']
desired_capabilities = {}
proxy.add_to_capabilities(desired_capabilities)
proxy_capabilities = self.PAC_PROXY.copy()
proxy_capabilities['proxyType'] = 'PAC'
expected_capabilities = {'proxy': proxy_capabilities}
self.assertEqual(expected_capabilities, desired_capabilities)
示例6: testCanAddPACProxyToDesiredCapabilities
# 需要导入模块: from selenium.webdriver.common.proxy import Proxy [as 别名]
# 或者: from selenium.webdriver.common.proxy.Proxy import add_to_capabilities [as 别名]
def testCanAddPACProxyToDesiredCapabilities():
proxy = Proxy()
proxy.proxy_autoconfig_url = PAC_PROXY['proxyAutoconfigUrl']
desired_capabilities = {}
proxy.add_to_capabilities(desired_capabilities)
proxy_capabilities = PAC_PROXY.copy()
proxy_capabilities['proxyType'] = 'PAC'
expected_capabilities = {'proxy': proxy_capabilities}
assert expected_capabilities == desired_capabilities
示例7: testCanAddManualProxyToDesiredCapabilities
# 需要导入模块: from selenium.webdriver.common.proxy import Proxy [as 别名]
# 或者: from selenium.webdriver.common.proxy.Proxy import add_to_capabilities [as 别名]
def testCanAddManualProxyToDesiredCapabilities(self):
proxy = Proxy()
proxy.http_proxy = self.MANUAL_PROXY["httpProxy"]
proxy.ftp_proxy = self.MANUAL_PROXY["ftpProxy"]
proxy.no_proxy = self.MANUAL_PROXY["noProxy"]
proxy.sslProxy = self.MANUAL_PROXY["sslProxy"]
proxy.socksProxy = self.MANUAL_PROXY["socksProxy"]
proxy.socksUsername = self.MANUAL_PROXY["socksUsername"]
proxy.socksPassword = self.MANUAL_PROXY["socksPassword"]
desired_capabilities = {}
proxy.add_to_capabilities(desired_capabilities)
proxy_capabilities = self.MANUAL_PROXY.copy()
proxy_capabilities["proxyType"] = "MANUAL"
expected_capabilities = {"proxy": proxy_capabilities}
self.assertEqual(expected_capabilities, desired_capabilities)
示例8: __init__
# 需要导入模块: from selenium.webdriver.common.proxy import Proxy [as 别名]
# 或者: from selenium.webdriver.common.proxy.Proxy import add_to_capabilities [as 别名]
def __init__(self, host="127.0.0.1", server="./selenium-server.jar"):
if server and path.isfile(server) and not _server_started():
self.selenium = _Selenium(server)
proxy = Proxy({
'proxyType': ProxyType.MANUAL,
'httpProxy': host,
'ftpProxy': host,
'sslProxy': host,
'noProxy': host
})
caps = webdriver.DesiredCapabilities.FIREFOX
proxy.add_to_capabilities(caps)
try:
self.driver = webdriver.Remote(desired_capabilities=caps)
except URLError:
raise SeleniumServerError
示例9: __init__
# 需要导入模块: from selenium.webdriver.common.proxy import Proxy [as 别名]
# 或者: from selenium.webdriver.common.proxy.Proxy import add_to_capabilities [as 别名]
def __init__(self, host="127.0.0.1", server="./selenium-server.jar"):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
port = sock.connect_ex(("127.0.0.1", 4444)) == 0
if server and path.isfile(server) and not port:
self.selenium = _Selenium(server)
proxy = Proxy({
'proxyType': ProxyType.MANUAL,
'httpProxy': host,
'ftpProxy': host,
'sslProxy': host,
'noProxy': host
})
caps = webdriver.DesiredCapabilities.FIREFOX
proxy.add_to_capabilities(caps)
try:
self.driver = webdriver.Remote(desired_capabilities=caps)
except URLError:
raise SeleniumServerError
示例10: testCanInitEmptyProxy
# 需要导入模块: from selenium.webdriver.common.proxy import Proxy [as 别名]
# 或者: from selenium.webdriver.common.proxy.Proxy import add_to_capabilities [as 别名]
def testCanInitEmptyProxy():
proxy = Proxy()
assert ProxyType.UNSPECIFIED == proxy.proxy_type
assert '' == proxy.http_proxy
assert '' == proxy.ftp_proxy
assert '' == proxy.no_proxy
assert '' == proxy.sslProxy
assert '' == proxy.socksProxy
assert '' == proxy.socksUsername
assert '' == proxy.socksPassword
assert proxy.auto_detect is False
assert '' == proxy.proxy_autoconfig_url
desired_capabilities = {}
proxy.add_to_capabilities(desired_capabilities)
proxy_capabilities = {}
proxy_capabilities['proxyType'] = 'UNSPECIFIED'
expected_capabilities = {'proxy': proxy_capabilities}
assert expected_capabilities == desired_capabilities
示例11: testCanInitEmptyProxy
# 需要导入模块: from selenium.webdriver.common.proxy import Proxy [as 别名]
# 或者: from selenium.webdriver.common.proxy.Proxy import add_to_capabilities [as 别名]
def testCanInitEmptyProxy(self):
proxy = Proxy()
self.assertEqual(ProxyType.UNSPECIFIED, proxy.proxy_type)
self.assertEqual('', proxy.http_proxy)
self.assertEqual('', proxy.ftp_proxy)
self.assertEqual('', proxy.no_proxy)
self.assertEqual('', proxy.sslProxy)
self.assertEqual('', proxy.socksProxy)
self.assertEqual('', proxy.socksUsername)
self.assertEqual('', proxy.socksPassword)
self.assertEqual(False, proxy.auto_detect)
self.assertEqual('', proxy.proxy_autoconfig_url)
desired_capabilities = {}
proxy.add_to_capabilities(desired_capabilities)
proxy_capabilities = {}
proxy_capabilities['proxyType'] = 'UNSPECIFIED'
expected_capabilities = {'proxy': proxy_capabilities}
self.assertEqual(expected_capabilities, desired_capabilities)
示例12: _setup_driver
# 需要导入模块: from selenium.webdriver.common.proxy import Proxy [as 别名]
# 或者: from selenium.webdriver.common.proxy.Proxy import add_to_capabilities [as 别名]
def _setup_driver(self):
proxy = Proxy()
proxy.proxy_type = ProxyType.DIRECT
if 'http' in self.proxy:
proxy.http_proxy = self.proxy['http']
if 'https' in self.proxy:
proxy.ssl_proxy = self.proxy['https']
capa = self._build_capabilities()
proxy.add_to_capabilities(capa)
options = self._build_options()
# TODO some browsers don't need headless
# TODO handle different proxy setting?
options.set_headless(self.HEADLESS)
if self.DRIVER is webdriver.Firefox:
if self.responses_dirname and not os.path.isdir(self.responses_dirname):
os.makedirs(self.responses_dirname)
options.profile = DirFirefoxProfile(self.responses_dirname)
if self.responses_dirname:
capa['profile'] = self.responses_dirname
self.driver = self.DRIVER(options=options, capabilities=capa)
elif self.DRIVER is webdriver.Chrome:
self.driver = self.DRIVER(options=options, desired_capabilities=capa)
elif self.DRIVER is webdriver.PhantomJS:
if self.responses_dirname:
if not os.path.isdir(self.responses_dirname):
os.makedirs(self.responses_dirname)
log_path = os.path.join(self.responses_dirname, 'selenium.log')
else:
log_path = NamedTemporaryFile(prefix='weboob_selenium_', suffix='.log', delete=False).name
self.driver = self.DRIVER(desired_capabilities=capa, service_log_path=log_path)
else:
raise NotImplementedError()
if self.WINDOW_SIZE:
self.driver.set_window_size(*self.WINDOW_SIZE)
示例13: testCanAddToDesiredCapabilities
# 需要导入模块: from selenium.webdriver.common.proxy import Proxy [as 别名]
# 或者: from selenium.webdriver.common.proxy.Proxy import add_to_capabilities [as 别名]
def testCanAddToDesiredCapabilities(self):
desired_capabilities = {}
proxy = Proxy()
proxy.http_proxy = 'some.url:1234'
proxy.ftp_proxy = 'ftp.proxy:1234'
proxy.no_proxy = 'localhost, foo.localhost'
proxy.sslProxy = 'ssl.proxy:1234'
proxy.autodetect = 'True'
proxy.add_to_capabilities(desired_capabilities)
expected_capabilities = {
'proxy': {
'proxyType': 'MANUAL',
'httpProxy': 'some.url:1234',
'ftpProxy': 'ftp.proxy:1234',
'noProxy': 'localhost, foo.localhost',
'sslProxy': 'ssl.proxy:1234',
'autodetect': 'True'
}
}
print 'descap', desired_capabilities
self.assertEqual(expected_capabilities, desired_capabilities)
示例14: get_browser
# 需要导入模块: from selenium.webdriver.common.proxy import Proxy [as 别名]
# 或者: from selenium.webdriver.common.proxy.Proxy import add_to_capabilities [as 别名]
def get_browser(user_agent, proxy_address, cert_path):
""" Set up a Selenium browser with given user agent, proxy and SSL cert. """
# PhantomJS
if settings.CAPTURE_BROWSER == 'PhantomJS':
desired_capabilities = dict(DesiredCapabilities.PHANTOMJS)
desired_capabilities["phantomjs.page.settings.userAgent"] = user_agent
browser = webdriver.PhantomJS(
executable_path=getattr(settings, 'PHANTOMJS_BINARY', 'phantomjs'),
desired_capabilities=desired_capabilities,
service_args=[
"--proxy=%s" % proxy_address,
"--ssl-certificates-path=%s" % cert_path,
"--ignore-ssl-errors=true",
"--local-url-access=false",
"--local-storage-path=.",
],
service_log_path=settings.PHANTOMJS_LOG)
# Firefox
elif settings.CAPTURE_BROWSER == 'Firefox':
desired_capabilities = dict(DesiredCapabilities.FIREFOX)
proxy = Proxy({
'proxyType': ProxyType.MANUAL,
'httpProxy': proxy_address,
'ftpProxy': proxy_address,
'sslProxy': proxy_address,
})
proxy.add_to_capabilities(desired_capabilities)
profile = webdriver.FirefoxProfile()
profile.accept_untrusted_certs = True
profile.assume_untrusted_cert_issuer = True
browser = webdriver.Firefox(
capabilities=desired_capabilities,
firefox_profile=profile)
# Chrome
elif settings.CAPTURE_BROWSER == 'Chrome':
# http://blog.likewise.org/2015/01/setting-up-chromedriver-and-the-selenium-webdriver-python-bindings-on-ubuntu-14-dot-04/
download_dir = os.path.abspath('./downloads')
os.mkdir(download_dir)
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--proxy-server=%s' % proxy_address)
chrome_options.add_argument('--test-type')
chrome_options.add_experimental_option("prefs", {"profile.default_content_settings.popups": "0",
"download.default_directory": download_dir,
"download.prompt_for_download": "false"})
desired_capabilities = chrome_options.to_capabilities()
desired_capabilities["acceptSslCerts"] = True
# for more detailed progress updates
# desired_capabilities["loggingPrefs"] = {'performance': 'INFO'}
# then:
# performance_log = browser.get_log('performance')
browser = webdriver.Chrome(desired_capabilities=desired_capabilities)
else:
assert False, "Invalid value for CAPTURE_BROWSER."
browser.implicitly_wait(ELEMENT_DISCOVERY_TIMEOUT)
browser.set_page_load_timeout(ROBOTS_TXT_TIMEOUT)
return browser
示例15: start_client
# 需要导入模块: from selenium.webdriver.common.proxy import Proxy [as 别名]
# 或者: from selenium.webdriver.common.proxy.Proxy import add_to_capabilities [as 别名]
def start_client(self):
capabilities = {}
for c in self.capabilities:
name, value = c.split(':')
# handle integer capabilities
if value.isdigit():
value = int(value)
# handle boolean capabilities
elif value.lower() in ['true', 'false']:
value = value.lower() == 'true'
capabilities.update({name: value})
if self.proxy_host and self.proxy_port:
proxy = Proxy()
proxy.http_proxy = '%s:%s' % (self.proxy_host, self.proxy_port)
proxy.ssl_proxy = proxy.http_proxy
proxy.add_to_capabilities(capabilities)
profile = None
if self.driver.upper() == 'REMOTE':
capabilities.update(getattr(webdriver.DesiredCapabilities, self.browser_name.upper()))
if json.loads(self.chrome_options) or self.extension_paths:
capabilities = self.create_chrome_options(
self.chrome_options,
self.extension_paths).to_capabilities()
if self.browser_name.upper() == 'FIREFOX':
profile = self.create_firefox_profile(
self.firefox_preferences,
self.profile_path,
self.extension_paths)
if self.browser_version:
capabilities['version'] = self.browser_version
capabilities['platform'] = self.platform.upper()
executor = 'http://%s:%s/wd/hub' % (self.host, self.port)
try:
self.selenium = webdriver.Remote(command_executor=executor,
desired_capabilities=capabilities or None,
browser_profile=profile)
except AttributeError:
valid_browsers = [attr for attr in dir(webdriver.DesiredCapabilities) if not attr.startswith('__')]
raise AttributeError("Invalid browser name: '%s'. Valid options are: %s" % (self.browser_name, ', '.join(valid_browsers)))
elif self.driver.upper() == 'CHROME':
options = None
if self.chrome_options or self.extension_paths:
options = self.create_chrome_options(
self.chrome_options,
self.extension_paths)
if self.chrome_path:
self.selenium = webdriver.Chrome(executable_path=self.chrome_path,
chrome_options=options,
desired_capabilities=capabilities or None)
else:
self.selenium = webdriver.Chrome(chrome_options=options,
desired_capabilities=capabilities or None)
elif self.driver.upper() == 'FIREFOX':
binary = self.firefox_path and FirefoxBinary(self.firefox_path) or None
profile = self.create_firefox_profile(
self.firefox_preferences,
self.profile_path,
self.extension_paths)
self.selenium = webdriver.Firefox(
firefox_binary=binary,
firefox_profile=profile,
capabilities=capabilities or None)
elif self.driver.upper() == 'IE':
self.selenium = webdriver.Ie()
elif self.driver.upper() == 'PHANTOMJS':
self.selenium = webdriver.PhantomJS()
elif self.driver.upper() == 'OPERA':
capabilities.update(webdriver.DesiredCapabilities.OPERA)
self.selenium = webdriver.Opera(executable_path=self.opera_path,
desired_capabilities=capabilities)
elif self.driver.upper() == 'BROWSERSTACK':
from cloud import BrowserStack
self.cloud = BrowserStack()
self.selenium = self.cloud.driver(
self.test_id, capabilities, self.options)
elif self.driver.upper() == 'SAUCELABS':
from cloud import SauceLabs
self.cloud = SauceLabs()
self.selenium = self.cloud.driver(
self.test_id, capabilities, self.options, self.keywords)
else:
self.selenium = getattr(webdriver, self.driver)()
if self.event_listener is not None and not isinstance(self.selenium, EventFiringWebDriver):
self.selenium = EventFiringWebDriver(self.selenium, self.event_listener())