2016-04-19 4 views
0

Ich verwende derzeit ghost.py und sie haben eine Funktion show(), wenn ich es anrufe zeigt die Website aber sofort schließen Sie es. Wie man es offen hält?Ghost.Py keep windown gezeigt

from ghost import Ghost 
import PySide 

ghost = Ghost() 

with ghost.start() as session: 
    page, resources = session.open("https://www.instagram.com/accounts/login/?force_classic_login") 
    session.set_field_value("input[name=username]", "joe") 
    session.set_field_value("input[name=password]", "test") 
    session.show() 
    session.evaluate("alert('test')") 

Antwort

0

Die Sitzung Vorschau wird bis session Ausfahrten offen bleiben - von den Sitzungskontext verlassen session.exit() implizit aufgerufen wird. Um dies offen zu halten, müssen Sie entweder den Sitzungskontext nicht verlassen oder einen Sitzungskontext nicht verwenden.

kann so erreicht
from ghost import Ghost 
import PySide 

ghost = Ghost() 

with ghost.start() as session: 
    page, resources = session.open("https://www.instagram.com/accounts/login/?force_classic_login") 
    session.set_field_value("input[name=username]", "joe") 
    session.set_field_value("input[name=password]", "test") 
    session.show() 
    session.evaluate("alert('test')") 

    # other python code 

Die letzteren werden:

Ersteres kann als so erreicht werden

from ghost import Ghost 
import PySide 

ghost = Ghost() 

session = ghost.start() 
page, resources = session.open("https://www.instagram.com/accounts/login/?force_classic_login") 
session.set_field_value("input[name=username]", "joe") 
session.set_field_value("input[name=password]", "test") 
session.show() 
session.evaluate("alert('test')") 

# other python code 

Die Sitzung wird jedoch unvermeidlich Ausgang, wenn der Python-Prozess endet. Es ist auch erwähnenswert, dass einige Operationen zurückkehren, sobald die erste HTTP-Anfrage abgeschlossen ist. Wenn Sie warten möchten, bis andere Ressourcen geladen wurden, müssen Sie möglicherweise session.wait_for_page_loaded() anrufen. Ich habe auch festgestellt, dass einige Formulareinreichungen einen Anruf an session.sleep() erfordern, um wie erwartet zu verhalten.