2017-01-09 6 views
1

Вот небольшая программа, которая, похоже, не закрывает последнюю вкладку.Клиент-марионетка Python не закрывает последнее окно

из marionette_driver.marionette импорта марионеток

  client = Marionette("localhost", socket_timeout=30, port=proc_port) 
      client.start_session() 
      client.set_window_size(1024,768) 
      client.close() 

, что не будет закрывать последнюю вкладку, но если есть несколько вкладок будет закрывать один.

Вызов клиента.quit() выдает ошибку.

Как закрыть последнюю вкладку/окно от клиента марионеток python?

ответ

0

Я пойду вперед и отвечу на это сам. После большого количества аварий, я искал вниз строку аварии, и это привело меня к this file сети разработки Mozilla для mariontte.py

Просматривая код, который я видел эти строки

@do_process_check 
def quit(self, in_app=False): 
    """Terminate the currently running instance. 

    This command will delete the active marionette session. It also allows 
    manipulation of eg. the profile data while the application is not running. 
    To start the application again, start_session() has to be called. 

    :param in_app: If True, marionette will cause a quit from within the 
        browser. Otherwise the browser will be quit immediately 
        by killing the process. 
    """ 
    if not self.instance: 
     raise errors.MarionetteException("quit() can only be called " 
             "on Gecko instances launched by Marionette") 

я продолжал получать авария quit() can only be called on Gecko instanced launched by Marionette

затем я огляделся и увидел параметр принудительного выхода, поэтому я попробовал это и, похоже, убьет последнее окно Firefox.

Возможно, в будущем команда Firefox может это исправить или я могу использовать API неправильно.

Если у вас открыто более 1 вкладки, вы можете закрыть ее, переключившись на этот дескриптор окна и вызывая client.close() в этом дескрипторе окна.

Если у вас есть только одна вкладка не остается открытым, что больше не работает, и для меня я должен был назвать

client._send_message("quitApplication", {"flags": ["eForceQuit"]}) 

закрыть последнее окно и выйти.

 Смежные вопросы

  • Нет связанных вопросов^_^