Selenium:与AWS Lambda首次成功连接后,连接被拒绝

时间:2018-12-20 22:56:01

标签: python amazon-web-services selenium aws-lambda google-chrome-headless

在成功使用Python 3.6部署了AWS Lambda + REST API Selenium程序包并对其进行了测试之后-HTTP请求或直接从Lambda仪表板进行了测试-我无法再次执行该脚本,并且错误[Errno 111] Connection refused"是如图所示。

我要解决此问题的唯一方法是更改​​仪表板中的随机配置,例如分配的内存,PATH或并发设置。换句话说,我必须手动重新部署整个Lambda程序包才能使其再次正常工作。

我已经在Google上搜索了几个小时,似乎该错误与端口已在使用中有关,但是我的Python脚本以return命令之前的driver.close()结尾,所以我看不到该位置来自。有没有一种方法可以在每次执行脚本时手动重新部署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 :(得分:0)

您可能想尝试driver.quit(),因为driver.close()通常不足以终止WebDriver会话。

driver.close函数仅关闭当前焦点对准的浏览器窗口。 driver.quit函数调用内部driver.dispose函数,关闭所有浏览器窗口,然后正常终止WebDriver会话。