水豚等到启用按钮?

时间:2019-07-01 14:27:42

标签: ruby selenium capybara

惊讶的是,我实际上还没有遇到过,但是我有一个简单的按钮,在选择下拉菜单之前,该按钮一直处于禁用状态。有时,页面速度不够快,无法在选择上一个下拉菜单后“启用”要单击的按钮,从而导致页面失败。

我可以花一两秒钟来“睡眠”并解决此问题,但这似乎是一种懒惰/较差的方法。

在水豚(或纯硒)中是否有一种方法可以让它等到实际启用按钮后才能使用?我想为此按钮添加页面模型方法(因为我试图在实际测试规范中避免使用特定于API的方法/ selenium / etc(尽管我可以,如果需要的话)。

FWIW这是专门针对Ruby的capybara框架,但是纯硒也可以。

2 个答案:

答案 0 :(得分:1)

在Python中,您可以执行以下操作:

def wait_until_clickable(driver, xpath, timeout = 1):
    while timeout > 0:
        try:
            element = driver.find_element_by_xpath(xpath)
            element.click()
            return element

        except:
            time.sleep(0.1)
            timeout = timeout - 0.1

    return False

答案 1 :(得分:1)

假设您所指的按钮实际上是一个按钮(