您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

硒预期条件-可以使用“或”吗?

硒预期条件-可以使用“或”吗?

我这样做是这样的:

class AnyEc:
    """ Use with webdriverwait to combine expected_conditions
        in an OR.
    """
    def __init__(self, *args):
        self.ecs = args
    def __call__(self, driver):
        for fn in self.ecs:
            try:
                if fn(driver): return True
            except:
                pass

然后像这样…

from selenium.webdriver.support import expected_conditions as EC
# ...
webdriverwait(driver, 10).until( AnyEc(
    EC.presence_of_element_located(
         (By.CSS_SELECTOR, "div.some_result")),
    EC.presence_of_element_located(
         (By.CSS_SELECTOR, "div.no_result")) ))

显然,同样实现一个AllEc类也是微不足道的。

Nb。的try:块为奇数。我很困惑,因为有些EC返回true / false,而另一些EC会为False抛出异常。异常是由webdriverwait捕获的,所以我的AnyEc事情产生了奇怪的结果,因为第一个抛出异常的事件意味着AnyEc没有继续进行下一个测试。

其他 2022/1/1 18:34:21 有270人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶