2016-04-19 64 views
0

我目前使用ghost.py,当我打电话时它们有一个show()函数显示网站,但是即时关闭它。如何保持它打开?Ghost.Py保持显示的风向

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

回答

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 

会话然而将不可避免的退出。另外值得注意的是,一旦初始http请求完成,一些操作就会返回。如果您希望等到其他资源加载完毕,则可能需要致电session.wait_for_page_loaded()。我还发现,某些表单提交需要拨打session.sleep()才能按预期行事。