Сценарий BrowserStack завершается ошибкой с MaxRetryError - PullRequest
0 голосов
/ 26 мая 2019

скрипт от https://www.browserstack.com/automate/python

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

desired_cap = {
    'browser': 'Chrome',
    'browser_version': '62.0',
    'os': 'Windows',
    'os_version': '10',
    'resolution': '1024x768',
    'name': 'Bstack-[Python] Sample Test'
}

driver = webdriver.Remote(
    command_executor='http://servinc1:key@hub.browserstack.com:80/wd/hub',
    desired_capabilities=desired_cap)

driver.get("http://www.google.com")
if not "Google" in driver.title:
    raise Exception("Unable to load google page!")
elem = driver.find_element_by_name("q")
elem.send_keys("BrowserStack")
elem.submit()
print driver.title
driver.quit()

не удалось с

urllib3.exceptions.MaxRetryError: HTTPConnectionPool (host = 'hub.browserstack.com', port = 80): превышено максимальное количество попыток с помощью url: / wd / hub / session (вызвано NewConnectionError (': не удалось установить новый соединение: [Errno 111] Отказано в соединении ',))

в системе с локальным HTTP-прокси. Прокси настроен с переменными среды {http,https}_proxy: использование запросов работает:

import requests
r = requests.get('https://api.github.com/events')

и разрешение подключений к hub.browserstack.com также работает.

Целью является использование BrowserStack с локальным прокси. Как это исправить?

Ответы [ 2 ]

0 голосов
/ 26 июня 2019

Итак, на данный момент обходной путь кажется ответом: разрешите всем соединениям с hub.browserstack.com проходить через брандмауэр.Например,

iptables -I OUTPUT 1 -p tcp --dport 443 -d hub.browserstack.com  -j ACCEPT
0 голосов
/ 27 мая 2019

Поскольку ваш сценарий использования включает в себя отправку трафика на BrowserStack Hub с использованием прокси, вам необходимо указать детали прокси в вашем фрагменте кода, как показано ниже:

//Set the appropriate proxy environment variable (HTTP_PROXY if it is a HTTP proxy, HTTPS_PROXY if it is a HTTPS proxy, etc.) before running the tests.
//You can set this as follows:

export HTTP_PROXY='http://<proxyhost>:<proxyport>'

Подробнее об этом можно прочитать здесь:https://www.browserstack.com/automate/python#proxy

...