RemoteDisconnected(“远程端封闭连接,而不” http.client.RemoteDisconnected:远程端封闭连接,而不响应

问题描述 投票:2回答:1

由于谷歌拒绝访问所有,但成立公司谷歌MyBusiness的API密钥,我试图使用自动化硒的webdriver改变我的商业信息的过程。

什么工作?

通过自动登录表单中谷歌Mybusiness记录。

什么不起作用?

登录后,我需要打开的编辑工作时间的小模态。我试图自动化的编辑按钮点击,但不幸的是我收到此错误:http.client.RemoteDisconnected: Remote end closed connection without response

我的代码:

from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument("start-maximized")
driver = webdriver.Chrome(chrome_options=options)

def LoginGMB(driver):    
    (myemail, mypassword) = AuthenticationDetails()   
    driver.find_element_by_id('identifierId').send_keys(myemail)
    driver.find_element_by_id('identifierNext').click()
    time.sleep(2)
    driver.find_element_by_name('password').send_keys(mypassword)
    driver.find_element_by_id('passwordNext').click()
    time.sleep(2)

def OpenGMB(url):    
    driver.get(url)
    print(driver.current_url)
    pattern = re.compile(".*accounts.google.com/signin.*")
    match = re.search(pattern, cururl)
    if match:
        LoginGMB(driver)
    print("Ok we're back")
    driver.find_element_by_id('ow50').click()

OpenGMB('https://business.google.com/edit/l/001?hl=en')

堆栈跟踪:

https://accounts.google.com/signin/v2/identifier?service=lbc&passive=1209600&continue
We need to login as we are presented login page
Ok we're back
Traceback (most recent call last):
File "/home/joel/.local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 600, in urlopen
    chunked=chunked)
File "/home/joel/.local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 384, in _make_request
    six.raise_from(e, None)
File "<string>", line 2, in raise_from
File "/home/joel/.local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 380, in _make_request
    httplib_response = conn.getresponse()
File "/usr/lib/python3.6/http/client.py", line 1331, in getresponse
    response.begin()
File "/usr/lib/python3.6/http/client.py", line 297, in begin
    version, status, reason = self._read_status()
File "/usr/lib/python3.6/http/client.py", line 266, in _read_status
    raise RemoteDisconnected("Remote end closed connection without"
http.client.RemoteDisconnected: Remote end closed connection without response

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "gmb.py", line 77, in <module>
    OpenGMB(url)
File "gmb.py", line 62, in OpenGMB
    el = driver.find_element_by_id('ow50')
File "/home/joel/.local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 360, in find_element_by_id
    return self.find_element(by=By.ID, value=id_)
File "/home/joel/.local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 978, in find_element
    'value': value})['value']
File "/home/joel/.local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 319, in execute
    response = self.command_executor.execute(driver_command, params)
File "/home/joel/.local/lib/python3.6/site-packages/selenium/webdriver/remote/remote_connection.py", line 376, in execute
    return self._request(command_info[0], url, body=data)
File "/home/joel/.local/lib/python3.6/site-packages/selenium/webdriver/remote/remote_connection.py", line 399, in _request
    resp = self._conn.request(method, url, body=body, headers=headers)
File "/home/joel/.local/lib/python3.6/site-packages/urllib3/request.py", line 72, in request
    **urlopen_kw)
File "/home/joel/.local/lib/python3.6/site-packages/urllib3/request.py", line 150, in request_encode_body
    return self.urlopen(method, url, **extra_kw)
File "/home/joel/.local/lib/python3.6/site-packages/urllib3/poolmanager.py", line 323, in urlopen
    response = conn.urlopen(method, u.request_uri, **kw)
File "/home/joel/.local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 638, in urlopen
    _stacktrace=sys.exc_info()[2])
File "/home/joel/.local/lib/python3.6/site-packages/urllib3/util/retry.py", line 367, in increment
    raise six.reraise(type(error), error, _stacktrace)
File "/home/joel/.local/lib/python3.6/site-packages/urllib3/packages/six.py", line 685, in reraise
    raise value.with_traceback(tb)
File "/home/joel/.local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 600, in urlopen
    chunked=chunked)
File "/home/joel/.local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 384, in _make_request
    six.raise_from(e, None)
File "<string>", line 2, in raise_from
File "/home/joel/.local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 380, in _make_request
    httplib_response = conn.getresponse()
File "/usr/lib/python3.6/http/client.py", line 1331, in getresponse
    response.begin()
File "/usr/lib/python3.6/http/client.py", line 297, in begin
    version, status, reason = self._read_status()
File "/usr/lib/python3.6/http/client.py", line 266, in _read_status
    raise RemoteDisconnected("Remote end closed connection without"
urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response',))
python selenium google-chrome selenium-webdriver selenium-chromedriver
1个回答
1
投票

这些错误消息...

    RemoteDisconnected("Remote end closed connection without"
http.client.RemoteDisconnected: Remote end closed connection without response

    RemoteDisconnected("Remote end closed connection without"
urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response',))

......意味着远程连接是由于ProtocolError断开。

按照urllib3.exceptions.ProtocolError: ('Connection aborted.', error(10054, 'An existing connection was forcibly closed by the remote host'))当有正在使用的二进制文件的版本之间的不兼容这个问题是非常明显的。

当您使用ChromeDriver和Chrome浏览器,你必须确保二进制文件按照下面的条目兼容:

  • ChromeDriver v2.46:支持Chrome的v71-73
  • ChromeDriver v2.45:支持Chrome的v70-72
  • ChromeDriver v2.44:支持Chrome的v69-71(同ChromeDriver 2.43,但随着更多的bug修复)
  • ChromeDriver v2.43:支持Chrome的v69-71
  • ChromeDriver v2.42:支持Chrome的v68-70
  • ChromeDriver V2.41:支持Chrome的v67-69
  • ChromeDriver V2.40:支持Chrome的v66-68
  • ChromeDriver v2.39:支持Chrome的v66-68
  • ChromeDriver v2.38:支持Chrome的v65-67
  • ChromeDriver v2.37:支持Chrome的v64-66
  • ChromeDriver v2.36:支持Chrome的v63-65
  • ChromeDriver v2.35:支持Chrome的v62-64
  • ChromeDriver v2.34:支持Chrome的v61-63
  • ChromeDriver v2.33:支持Chrome的v60-62
  • ChromeDriver v2.32:支持Chrome的v59-61
  • ChromeDriver v2.31:支持Chrome的v58-60
  • ChromeDriver V2.30:支持Chrome的v58-60
  • ChromeDriver V2.29:支持Chrome的v56-58
  • ChromeDriver v2.28:支持Chrome的v55-57
  • ChromeDriver v2.27:支持Chrome的v54-56

注:几个月前,铬小组提出了preliminary announcement是ChromeDriver的版本模式将发生变化。现在我们的计划向前推进。具体来说,ChromeDriver 2.46将是最后一个版本携带2.未来ChromeDriver发布的主要版本将搭载类似Chrome发布版本号。我们将与ChromeDriver 73下周的释放开始时,Chrome 73的测试版发布之前。

这是新的发布模式将如何工作:

  • ChromeDriver将使用相同的版本号计划,作为浏览器。见https://www.chromium.org/developers/version-numbers了解更多详情。
  • ChromeDriver的每个版本将支持Chrome浏览器相匹配的主要,次要,建立版本号。例如,即将到来的ChromeDriver 73.0.3683 *将支持与73.0.3683启动所有Chrome版本。
  • 之前,新的Chrome主要版本进入测试阶段,ChromeDriver的匹配版本将被释放。例如,ChromeDriver的新版本将在下周发布,以配合镀铬M73的Beta版本。
  • 新的主要版本的初始发行后,根据需要,我们将发布补丁。这些补丁程序可能会或可能不会与Chrome更新一致。
© www.soinside.com 2019 - 2024. All rights reserved.