Robot Framework: Suite Teardown завершается неудачно при использовании Close All Browser - PullRequest
0 голосов
/ 20 декабря 2018

Я использую chromedriver , robotframework с SeleniumLibrary , и все тесты работают нормально, но разборка комплекта не удалась.Я не могу понять, почему.Помощь будет принята с благодарностью.Журнал показывает:

Ошибка удаления родительского пакета: BadStatusLine: ''

*** Settings ***
Suite Setup Open Database Connection
Test Setup  Login
Suite Teardown   Suite shutdown

*** Test cases ***
...
...

*** Keywords ***
Suite shutdown
     Disconnect from Database
     Close All Browsers

Установленные версии

  • chromedriver 2.45.615291
  • каркас робота 3.1.1
  • python 2.7.12
  • SeleniumLibrary 3.3.1
  • Selenium 3.141.0

Я вошел в системучто вызвало ошибку BadStatusLine, надеюсь, это поможет найти решение

    09:26:28.700    FAIL    BadStatusLine: ''    
    09:26:28.700    DEBUG   Traceback (most recent call last):   
File "C:\Python27x86\lib\site-packages\SeleniumLibrary\__init__.py", line 372, in run_keyword
        return DynamicCore.run_keyword(self, name, args, kwargs)   
File "C:\Python27x86\lib\site-packages\SeleniumLibrary\base\robotlibcore.py", line 102, in run_keyword
        return self.keywords[name](*args, **kwargs)   
File "C:\Python27x86\lib\site-packages\SeleniumLibrary\keywords\browsermanagement.py", line 47, in close_all_browsers
        self.drivers.close_all()  
File "C:\Python27x86\lib\site-packages\SeleniumLibrary\keywords\webdrivertools.py", line 245, in close_all
        driver.quit()   File "C:\Python27x86\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 158, in quit
        self.service.stop()   
File "C:\Python27x86\lib\site-packages\selenium\webdriver\common\service.py", line 151, in stop
        self.send_remote_shutdown_command()   
File "C:\Python27x86\lib\site-packages\selenium\webdriver\common\service.py", line 127, in send_remote_shutdown_command
        url_request.urlopen("%s/shutdown" % self.service_url)   
File "C:\Python27x86\lib\urllib2.py", line 154, in urlopen
        return opener.open(url, data, timeout)   File "C:\Python27x86\lib\urllib2.py", line 429, in open
        response = self._open(req, data)   
File "C:\Python27x86\lib\urllib2.py", line 447, in _open
        '_open', req)   File "C:\Python27x86\lib\urllib2.py", line 407, in _call_chain
        result = func(*args)   
File "C:\Python27x86\lib\urllib2.py", line 1228, in http_open
        return self.do_open(httplib.HTTPConnection, req)   
File "C:\Python27x86\lib\urllib2.py", line 1201, in do_open
        r = h.getresponse(buffering=True)   
File "C:\Python27x86\lib\httplib.py", line 1136, in getresponse
        response.begin()   
File "C:\Python27x86\lib\httplib.py", line 453, in begin
        version, status, reason = self._read_status()   
File "C:\Python27x86\lib\httplib.py", line 417, in _read_status
        raise BadStatusLine(line)

Ответы [ 3 ]

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

Быстрое решение состоит в том, чтобы добавить Run Keyword And Ignore Error к вашему Suite Teardown, он по-прежнему будет выполнять команды, которые действительны, но пропустит команду error примерно так:

*** Settings ***


Library  Selenium2Library
Suite Teardown   Run Keyword And Ignore Error  Suite shutdown



*** Test Cases ***
Test Keyword
    Open Browser  http://google.com  chrome

*** Keywords ***
Suite shutdown
     Erro1234r # This should fail due to no keyword named Erro1234r, it skips this and closes all browsers
     Close All Browsers
0 голосов
/ 05 января 2019

Ошибка BadStatusLine: '' распространяется из httplib Python - основного модуля для http-связи (что очевидно из его названия :)) и возникает из-за ошибки в связи между selenium и веб-драйвером длябраузер.
Он не связан с SeleniumLibrary / Selenium2Library Robot Framework - это просто оболочка (очень хорошая, я должен признать) над библиотекой селена.

Так что ищите ошибку в этом направлении -версия вашей установленной библиотеки selenium не работает с установленной chromedriver - одна отправлена ​​другим данным, что было неожиданно для получателя.
Я бы предложил обновить до последних версий обеих -этот сбой происходит, когда один (значительно) новее другого.

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

Причиной может быть используемая вами версия селена.

Чтобы узнать, какие версии селена поддерживают, какую версию Python вы используете, посмотрите.https://github.com/robotframework/SeleniumLibrary/blob/master/README.rst#support

*** Settings ***
Suite Setup    Open Database Connection
Test Setup     Login
Suite Teardown    Suite shutdown
Library    SeleniumLibrary

*** Test cases ***
...
...

*** Keywords ***
Suite shutdown
    Disconnect from Database
    Close All Browsers
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...