【发布时间】:2015-02-27 00:30:15
【问题描述】:
我希望能够执行类似于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)
...或者我可以在上面的示例中将 search 替换为 match。这种方法的问题是,如果对象.. (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 语句是否已评估为真。这可能适合模块或类。我想知道是否有更优雅的解决方案,在 Python 中用于 Selenium WebDriver,来处理我不知道的问题。
【问题讨论】:
标签: python regex selenium selenium-webdriver webdriver