Selenium Python 遍历 Web 表列,在条件为 true 后停止,如果条件为 false,则抛出错误



我正在尝试验证数据值(包括美元和美分金额)是否被填充在HTML表的某些列中。我编写了一个Selenium Python脚本,它使用For Loop来遍历HTML表。我在 For 循环中添加了一个 IF/ELSE,以检查是否在表列中的任何文本中找到小数点。如果找到带有小数点的值,则变量"values_filled"设置为 True(如果没有,则"values_filled"设置为 False)。我的想法是,如果找到带有小数点的值,则该列已成功填充美元和美分值。如果未找到小数点,则未填充该列,这应触发"FAIL"。

我编写的代码成功地循环访问了 HTML 表的行和列。此外,如果存在带有小数点的值,则 IF/ELSE 部分正确标记 "values_filled" = True,如果未找到值,则 values_filled = False。最后,我有一个 TRY/EXCEPT 部分,如果values_filled为"False",则会引发异常。

接下来我想做的是,当找到"values_filled"= True 的第一个实例时,我想结束循环。但是,即使values_filled值为 true,循环也会继续。

account_balances_table = driver.find_element(By.XPATH, "/html/body/div[1]/div[3]/div/div/ui-view/div/div/div/div[4]/div[1]/table")
rows = account_balances_table.find_elements(By.TAG_NAME, "tr")
for row in rows:
cols = row.find_elements(By.TAG_NAME, "td")
for col in cols:
text_found = cols[1].text
if ("." in text_found):
values_filled = True
if values_filled == True:
break
else:
continue
else:
values_filled = False
try:
assert values_filled is True
except AssertionError:
screenshot_name = "FAIL" + "_" + test_case_ID + "_" + browser + "_" + env + "_" + time_stamp + ".png"
saved_screenshot_location = str(screenshot_directory / screenshot_name)
driver.get_screenshot_as_file(saved_screenshot_location)
raise

我遇到的问题是,即使values_filled为"真",For 循环也会继续。我插入了一个中断,但循环没有停止。这是一个问题,因为脚本继续并错误地标记在其他单元格中找到的空白值的异常。我希望循环在找到 values_filled = true 的第一个实例后结束。

发布有效的解决方案。

account_balances_table = driver.find_element(By.XPATH, "/html/body/div[1]/div[3]/div/div/ui-view/div/div/div/div[4]/div[1]/table")
rows = account_balances_table.find_elements(By.TAG_NAME, "tr")
values_filled = False
for row in rows:
cols = row.find_elements(By.TAG_NAME, "td")
for col in cols:
text_found = cols[1].text
if ("." in text_found):
values_filled = True
break
try:
assert values_filled is True
except AssertionError:
screenshot_name = "FAIL" + "_" + test_case_ID + "_" + browser + "_" + env + "_" + time_stamp + ".png"
saved_screenshot_location = str(screenshot_directory / screenshot_name)
driver.get_screenshot_as_file(saved_screenshot_location)
raise

相关内容

  • 没有找到相关文章

最新更新