我希望能够执行类似于WebDriverWait()
的操作,即:
WebDriverWait(driver, 60).until(
expected_conditions.text_to_be_present_in_element((By.XPATH, "//tr[5]/td[11]/div"), "1.000000")
)
...对于一个正则表达式而言,在失败之前它会等待一段预定的时间。我知道我可以做一些操作,比如...
assert re.search(r"[0,1]{1}.[0-9]{6}", driver.find_element_by_xpath("//tr[5]/td[11]/div").text)
在上面的例子中,我可以用match替换search。这种方法的问题是,如果对象(1)尚未加载或(2)仍在转换为预期的内容,则该方法将失败。我可以采取以下措施...
for x in range (1,60):
try:
assert re.search(r"[0,1]{1}.[0-9]{6}", driver.find_element_by_xpath("//tr[5]/td[11]/div").text)
except AssertionError:
if x < 60:
time.sleep(1)
else:
raise AssertionError
...其中它每秒检查一次60秒,以查看assert语句是否评估为true。 这可以放入模块或类中。 我想知道的是,是否有更优雅的解决方案,在Python中使用Selenium WebDriver来处理这个问题,我不知道。