WebDriver python相当于“刷新”的预期条件

时间:2015-07-30 19:03:45

标签: python selenium selenium-webdriver

因此,使用WebDriver python绑定,我遇到了一个问题,我需要等到页面上的元素刷新。说,我有两个radio buttons,点击其中任意一个,label文字就会更改。

目前,如果我点击一个并获取文本,然后单击另一个并再次获取文本,我将获得相同的文本,尽管它已经更改。因此,我想我需要等待元素刷新。

在Java文档中,有一个refreshed预期条件,在这种情况下似乎很有用。但我无法找到它的python版本。它的等价物是什么?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

<div class="quotes" id="main-quotes"> <div class="ipad-div" align="right" id="ipad-my-div"> <img class="ipad" src="images/pricing/ipad.png" alt="iPad"> <div align="center" class="try-end-ipad" data-700-end="opacity: 1" data-600-end="opacity: 0"> <font class="try-free">Try Hubdoc for FREE</font> <img class="price" src="images/pricing/price.png" alt="$19/m"> </div> </div> <div class="card-div" align="left"> <section> <div align="center" class="try-end"> <font class="try-free">Try Hubdoc for FREE</font> <img class="price" src="images/pricing/price.png" alt="$19/m"> </div> <div class="receipt-1 serrated-top" align="center"> <font class="eye-i"><i class="fa fa-eye"></i></font> <font class="one-title"><br>Automatically extracts<br> key data from</font> <img class="papers-1" src="images/pricing/papers.png" alt="bank statements"> <div class="col-1-left" align="left"> <font class="checkmark-1"><i class="fa fa-check"></i></font> <font class="check-text">bills</font> <br> <font class="checkmark-1"><i class="fa fa-check"></i></font> <font class="check-text">statements</font> </div> <div class="col-1-right" align="left"> <font class="checkmark-1"><i class="fa fa-check"></i></font> <font class="check-text">invoices</font> <br> <font class="checkmark-1"><i class="fa fa-check"></i></font> <font class="check-text">receipts</font> </div> </div> </section>下的

text_to_be_present_in_element()与您正在寻找的内容类似。如果expected_conditions.py不是value更改,而是另一个字段textContent,则可以滚动与text_to_be_present_in_element()类似的自定义解决方案。

def attribute_text_is_in_element(text, locator, attribute):
    try:
        element_text = driver.find_element(locator).get_attribute(attribute)
        if text == element_text:
            return True
        else:
            return False
    except StaleElementReferenceException:
        return False