Selenium: после первого успешного соединения с AWS Lambda отказано в соединении - PullRequest
0 голосов
/ 21 декабря 2018

После успешного развертывания пакета AWS Lambda + REST API Selenium с Python 3.6 и тестирования его -HTTP-запроса или непосредственно с панели управления Lambda - я не могу выполнить сценарий во второй раз, и отображается ошибка [Errno 111] Connection refused".

Единственный способ, которым я могу это исправить, - это изменить случайные конфиги на панели инструментов, такие как выделенная память, PATH или параметры параллелизма.Другими словами, мне нужно вручную повторно развернуть весь пакет Lambda, чтобы он снова заработал.

Я уже несколько часов гуглю и похоже, что ошибка связана с тем, что порт уже используется, но мои скрипты на Python заканчиваются driver.close() перед командой return, поэтому я не вижу, откуда это происходит.Есть ли способ вручную повторно развертывать пакет lambda каждый раз, когда выполняется мой сценарий?Или даже лучше: как мне это исправить?

Вот все опции, которые я использую:

hrome_options.add_argument('--disable-extensions')

chrome_options.add_argument('--allow-insecure-localhost')
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--user-data-dir=/tmp/user-data')
chrome_options.add_argument('--enable-logging')
chrome_options.add_argument('--ignore-certificate-errors')
chrome_options.add_argument('--window-size=1280,1000')
chrome_options.add_argument('--allow-running-insecure-content')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--log-level=0')
chrome_options.add_argument('--v=99')
chrome_options.add_argument('--single-process')
chrome_options.add_argument('--data-path=/tmp/data-path')
chrome_options.add_argument('--ignore-certificate-errors')
chrome_options.add_argument('--homedir=/tmp')
chrome_options.add_argument('--disk-cache-dir=/tmp/cache-dir')
chrome_options.add_argument('user-agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36')
chrome_options.binary_location = os.getcwd() + "/bin/headless-chromium"

driver = webdriver.Chrome(chrome_options=chrome_options)
dynamo = boto3.client('dynamodb')

1 Ответ

0 голосов
/ 21 декабря 2018

Возможно, вы захотите попробовать driver.quit(), поскольку driver.close() обычно недостаточно для завершения сеанса WebDriver.

Функция driver.close закрывает только окно браузера, которое в данный момент находится в фокусе.Функция driver.quit вызывает внутреннюю функцию driver.dispose, закрывает все окна браузера и затем корректно завершает сеанс WebDriver.

...