Как мне заставить Selenium Web Driver ждать, пока элемент будет доступен, а не просто присутствует?

Я пишу тесты для веб-приложения. Некоторые команды открывают диалоговые окна, элементы управления которых видны, но недоступны в течение некоторого времени (они выделены серым цветом) out, но webdriver по-прежнему видит их как видимые).

Как я могу сказать Selenium ждать, пока элемент станет действительно доступным, а не только видимым?

    try:
        print "about to look for element"
        element = WebDriverWait(driver, 10).until(lambda driver : driver.find_element_by_id("createFolderCreateBtn"))
        print "still looking?"
    finally: print 'yowp'

Вот код, который я пробовал, но он «видит» "кнопка до того, как ее можно будет использовать, и в основном заряжается сразу после предполагаемого" ожидания ".

Обратите внимание, что я могу вставить в код 10-секундный сон вместо этого, и код будет работать правильно, но это уродливо, ненадежно, и неэффективно. Но это доказывает, что проблема заключается в том, что команда "щелкнуть" опережает доступность элементов управления.

28
задан Skip Huffman 6 February 2012 в 14:38
поделиться