python-硒waitForElemen
如何在Python中编写Selenium函数以等待带有类标识符的表? 我在学习使用Selenium的Python Webdriver函数时遇到了恶魔。
13个解决方案
53 votes
从硒文档PDF:
import contextlib
import selenium.webdriver as webdriver
import selenium.webdriver.support.ui as ui
with contextlib.closing(webdriver.Firefox()) as driver:
driver.get('http://www.google.com')
wait = ui.WebDriverWait(driver,10)
# Do not call `implicitly_wait` if using `WebDriverWait`.
# It magnifies the timeout.
# driver.implicitly_wait(10)
inputElement=driver.find_element_by_name('q')
inputElement.send_keys('Cheese!')
inputElement.submit()
print(driver.title)
wait.until(lambda driver: driver.title.lower().startswith('cheese!'))
print(driver.title)
# This raises
# selenium.common.exceptions.TimeoutException: Message: None
# after 10 seconds
wait.until(lambda driver: driver.find_element_by_id('someId'))
print(driver.title)
unutbu answered 2020-08-06T09:57:59Z
20 votes
Selenium 2的Python绑定具有一个新的支持类,称为Expected_conditions.py,用于执行各种操作,例如测试元素是否可见。 在这里可用。
注意:截至2012年10月12日,以上文件位于主干中,但最新下载文件仍为2.25。 暂时直到发布新的Selenium版本,您才可以立即在本地保存该文件,并将其包含在您的导入文件中,就像我在下面所做的那样。
为了简化工作,您可以将其中一些预期的条件方法与Selenium wait until逻辑结合使用,以实现一些非常方便的功能,类似于Selenium 1中提供的功能。例如,我将其放入名为SeleniumTest的基类中, 我的Selenium测试类扩展了&#