在我在调用

时间:2016-06-19 14:57:21

标签: python python-3.x selenium selenium-webdriver

我有一个Python 3.5脚本,基本上登录到一个网站(并在登录后重定向),然后导航到另一个页面,它实际上是它的工作。如果我在登录后立即运行webdriver.get()到第二页,它就不会导航到目标位置并停留在我登录后重定向到的页面上。但是如果我放置一个断点或只是{{ 1}} - 它打开很好。我在C#代码中发现了this问题,建议添加异步等待。是否有Pythonic方法来解决它?

我的参考代码:

time.sleep(5)

1 个答案:

答案 0 :(得分:1)

您需要应用Explicit WaitsWebDriverWait类的概念。您只需选择要等待的预期条件。听起来title_istitle_contains可能适用于您的情况:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC


login(mydriver, login_page, "username", "password")

# wait for invite page to be opened
wait = WebDriverWait(mydriver, 10)
wait.until(
    EC.title_is("Invite Page")  # TODO: change to the real page title
)

open_invite_page(mydriver, group_invite_page)

请注意,有多个内置的预期条件。例如,您可以等待特定元素在邀请页面上显示,可见或可点击。并且,如果您在内置条件中找不到合适的结果,则可以创建custom Expected Conditions