Python Promise:如何使用promises等待页面加载或webelement?

2024-06-16 11:38:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用Promise包for Python来摆脱预期条件和显式等待。在

这是我的代码:

from selenium import webdriver
from promise import Promise

driver = webdriver.Firefox()
driver.set_window_size(1500, 1000)
driver.maximize_window()

about = '#fsl > a:nth-child(3)'
products = 'body > header > div > nav > ul > li:nth-child(2) > a'

print ">> START <<"

promise = Promise(driver.get('https://google.co.uk'))
promise.then(driver.find_element_by_css_selector(about).click())

assert driver.find_element_by_css_selector(products).is_displayed() == True

driver.quit()

这会转到google网页,点击底部的“关于”链接,并断言“我们的产品”链接在下一页可见。在

此测试失败,因为断言是在click()命令承诺之后立即执行的。这是有道理的,承诺交付,但页面仍然需要一些时间来加载。在

如何创建一个promise来模拟等待webelement可见或页面完全加载?在


更新:

我一直在尝试Promises提供的_wait方法,但是没有用:

^{pr2}$

Tags: fromimportchildbydrivergoogleelementfind