首页 > 解决方案 > 使用 Python 等待元素中的文本成为 Selenium 中的数字

问题描述

一个动态生成的网站有这样一个元素:

<b class="2020-is-terrible"></b>

一段时间后,它会用这样b的随机数填充元素:

<b class="2020-is-terrible">42</b>

我想等待生成该数字,现在我想出了一个等待特定数字的代码:

WebDriverWait(driver, 10).until(expected_conditions.text_to_be_present_in_element((By.CLASS_NAME, "2020-is-terrible"), "42"))

b但如果元素中出现任何值(不仅仅是 42),我想继续。该值将始终是一个数字,所以我只需要检查文本是否为空。

expected_conditions类的列表,因此您无需谷歌。

标签: python-3.xseleniumwaitexpected-condition

解决方案


使用 xpath,您还可以and通过组合类名和来使用运算符text!='',如下所示:

//b[@class='2020-is-terrible' and text()!='']

尝试这个:

WebDriverWait(driver, 10).until(expected_conditions.presence_of_element_located((By.XPATH, "//b[@class='2020-is-terrible' and text()!='']")))

推荐阅读