我有点努力让这个工作,因为它没有像预期的那样对我有用。任何仍在努力使其正常工作的人都可以检查一下。
在继续我的操作之前,我想等待网页上出现一个元素。
我们可以使用 WebDriverWait(driver, 10, 1).until(),但要注意的是until()需要一个函数,它可以在每 1 秒提供的超时时间段内执行(在我们的例子中为 10)。所以保持它像下面对我有用。
element_found = wait_for_element.until(lambda x: x.find_element_by_class_name("MY_ELEMENT_CLASS_NAME").is_displayed())
这是直到()在幕后所做的
def until(self, method, message=''):
"""Calls the method provided with the driver as an argument until the \
return value is not False."""
screen = None
stacktrace = None
end_time = time.time() + self._timeout
while True:
try:
value = method(self._driver)
if value:
return value
except self._ignored_exceptions as exc:
screen = getattr(exc, 'screen', None)
stacktrace = getattr(exc, 'stacktrace', None)
time.sleep(self._poll)
if time.time() > end_time:
break
raise TimeoutException(message, screen, stacktrace)