getattr сообщает о неожиданных исключениях при повторении объекта webdriver

#python-3.x

#python-3.x

Вопрос:

Я использую selenium

 In [1]: import selenium  
In [2]: from selenium import webdriver   
In [3]: chrome = webdriver.Chrome()
  

Откройте официальный сайт python

 In [5]: chrome.get("http://www.python.org")
In [6]: chrome.title
Out[6]: 'Welcome to Python.org'
  

Методы извлечения

 In [11]: methods = [ m for m in dir(chrome) if not m.endswith("_")]
In [36]: len(methods)
Out[36]: 90
  

Тест getattr

 In [41]: getattr(chrome, methods[0])
Out[41]: <selenium.webdriver.remote.file_detector.LocalFileDetector at 0x7f436ebf7630>
In [42]: getattr(chrome, methods[1])
Out[42]: False
  

Это работает нормально, но когда доходит до его повторения

 In [43]: for m in methods:
    ...:     getattr(chrome, m)
    ...:     
    ---------------------------------------------------------------------------
    WebDriverException                        Traceback (most recent call last)
    <ipython-input-43-e728e0081ce6> in <module>()
          1 for m in methods:
    ----> 2     getattr(chrome, m)
          3 

    /home/wei/.local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py in orientation(self)
       1213             orientation = driver.orientation
       1214         """
    -> 1215         return self.execute(Command.GET_SCREEN_ORIENTATION)['value']
       1216 
       1217     @orientation.setter

    /home/wei/.local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py in execute(self, driver_command, params)
        319         response = self.command_executor.execute(driver_command, params)
        320         if response:
    --> 321             self.error_handler.check_response(response)
        322             response['value'] = self._unwrap_value(
        323                 response.get('value', None))

    /home/wei/.local/lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py in check_response(self, response)
        240                 alert_text = value['alert'].get('text')
        241             raise exception_class(message, screen, stacktrace, alert_text)
    --> 242         raise exception_class(message, screen, stacktrace)
        243 
        244     def _value_or_default(self, obj, key, default):

    WebDriverException: Message: unknown error: unhandled inspector error: {"code":-32601,"message":"'Emulation.getScreenOrientation' wasn't found"}
      (Session info: chrome=73.0.3683.75)
      (Driver info: chromedriver=73.0.3683.68 (47787ec04b6e38e22703e856e101e840b65afe72),platform=Linux 4.18.0-16-generic x86_64)
  

Я проверил, что в моем использовании цикла for или getattr нет ошибок.

В чем проблема с моими кодами?

Комментарии:

1. Может быть, в вашем коде нет проблемы, и вы просто не можете получить ориентацию? Нет гарантии, что только потому, что у объекта есть атрибут, обращение к которому не вызовет ошибки; почему вы пытаетесь получить доступ ко всем из них?