我想检查的状态<td>具有从状态变化元件"Running"来"Success"。状态更改可能需要大约1分钟或每隔几秒钟,我需要重试检查元素的状态。有人可以帮助我如何实现这一目标,以下是我正在尝试的html结构和代码段。跑步<tbody id="workflows"><tr id="row8ff2244a64f3e7180164ff637c574d24" class="selected"><td><span class="wf-status running" id="status8ff2244a64f3e7180164ff637c574d24">Running</span></td><td>Copy of Discovery v4madhu-test3-automate</td><td>03 Aug 16:14</td><td>autotest</td><td>dmatarget14.hpeswlab.net</td><td></td><td></td></tr></tbody>成功<tbody id="workflows"><tr id="row8ff2244a64f3e7180164ff637c574d24" class="selected"><td><span class="wf-status wfsuccess" id="status8ff2244a64f3e7180164ff637c574d24">Success</span></td><td>Copy of Discovery v4madhu-test3-automate</td><td>03 Aug 16:14</td><td>autotest</td><td>dmatarget14.hpeswlab.net</td><td></td><td></td></tr></tbody>样例代码timeout = 60maxtime = time.time() + timeoutresult = Nonewhile result is "SUCCESS": try: # connect result = driver.find_element_by_xpath('//td[contains,"dmatarget14.hpeswlab.net"] and td[contains,"Success"]/ancestor::tr') time.sleep(5) except: if time.time() > maxtime: raise Exception
3 回答

潇潇雨雨
TA贡献1833条经验 获得超4个赞
要验证<td>
元素的状态以将文本从“运行”更改为“成功”,您可以使用以下解决方案之一:
text_to_be_present_in_element
和CSS_SELECTOR
:element = WebDriverWait(driver, 20).until(EC.text_to_be_present_in_element((By.CSS_SELECTOR, "tbody#workflows>tr.selected>td>span.wf-status.wfsuccess"), "Success"))
text_to_be_present_in_element_value
和CSS_SELECTOR
:element = WebDriverWait(driver, 20).until(EC.text_to_be_present_in_element_value((By.CSS_SELECTOR, "tbody#workflows>tr.selected>td>span.wf-status.wfsuccess"), "Success"))

喵喵时光机
TA贡献1846条经验 获得超7个赞
您可以尝试以下代码:
WebDriverWait(driver, 60).until( EC.presence_of_element_located((By.XPATH, '//td[contains,"dmatarget14.hpeswlab.net"] and td[contains,"Success"]/ancestor::tr'))
添加回答
举报
0/150
提交
取消