我有一个Python 3.5脚本,基本上登录到一个网站(并在登录后重定向),然后导航到另一个页面,它实际上是它的工作。如果我在登录后立即运行webdriver.get()
到第二页,它就不会导航到目标位置并停留在我登录后重定向到的页面上。但是如果我放置一个断点或只是{{ 1}} - 它打开很好。我在C#代码中发现了this问题,建议添加异步等待。是否有Pythonic方法来解决它?
我的参考代码:
time.sleep(5)
答案 0 :(得分:1)
您需要应用Explicit Waits和WebDriverWait
类的概念。您只需选择要等待的预期条件。听起来title_is
和title_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。