如何使用Selenium WebDriver和Python等待并获取Web元素的状态

我想检查的状态<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 = 60

maxtime = time.time() + timeout

result = None

while 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


SMILET
浏览 245回答 3
3回答

潇潇雨雨

要验证<td>元素的状态以将文本从“运行”更改为“成功”,您可以使用以下解决方案之一:text_to_be_present_in_element和CSS_SELECTOR:element&nbsp;=&nbsp;WebDriverWait(driver,&nbsp;20).until(EC.text_to_be_present_in_element((By.CSS_SELECTOR,&nbsp;"tbody#workflows>tr.selected>td>span.wf-status.wfsuccess"),&nbsp;"Success"))text_to_be_present_in_element_value和CSS_SELECTOR:element&nbsp;=&nbsp;WebDriverWait(driver,&nbsp;20).until(EC.text_to_be_present_in_element_value((By.CSS_SELECTOR,&nbsp;"tbody#workflows>tr.selected>td>span.wf-status.wfsuccess"),&nbsp;"Success"))

喵喵时光机

您可以尝试以下代码:WebDriverWait(driver,&nbsp;60).until( &nbsp;&nbsp;&nbsp;&nbsp;EC.presence_of_element_located((By.XPATH,&nbsp;'//td[contains,"dmatarget14.hpeswlab.net"]&nbsp;and&nbsp;td[contains,"Success"]/ancestor::tr'))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python