Ghost.Py保持windown显示

时间:2016-04-19 17:43:34

标签: python ghost.py

我目前正在使用ghost.py并且当我调用它时它们有一个函数show()显示网站但是立即关闭它。如何保持开放?

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')")

1 个答案:

答案 0 :(得分:0)

会话预览将保持打开状态,直到session退出 - 通过隐式调用会话上下文session.exit()。要保持打开状态,您需要不退出会话上下文,或者不使用会话上下文。

前者可以如此实现:

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

后者可以这样实现:

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

然而,当python进程结束时,会话将不可避免地退出。另外值得注意的是,一旦初始http请求完成,一些操作将立即返回。如果您希望等到其他资源已加载,则可能需要致电session.wait_for_page_loaded()。我还发现,某些表单提交需要调用session.sleep()才能按预期运行。