因此,使用WebDriver python绑定,我遇到了一个问题,我需要等到页面上的元素刷新。说,我有两个radio buttons
,点击其中任意一个,label
文字就会更改。
目前,如果我点击一个并获取文本,然后单击另一个并再次获取文本,我将获得相同的文本,尽管它已经更改。因此,我想我需要等待元素刷新。
在Java文档中,有一个refreshed预期条件,在这种情况下似乎很有用。但我无法找到它的python版本。它的等价物是什么?我该如何解决这个问题?
答案 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