如何在selenium ide中重新启动测试用例的执行

时间:2014-03-04 06:04:18

标签: selenium selenium-ide

我有一个测试用例停止并抛出错误“未找到元素”。

现在我想做的是,我希望selenium ide能够刷新页面并从头开始运行脚本。

我想知道的是,有没有办法在Selenium IDE中实现这一点。如果是,怎么样?

1 个答案:

答案 0 :(得分:0)

是的,当然。首先,你应该有一个try-except-else结构。然后你应该有一个while True循环并指定NoSuchElementException从循环开始继续。在此except块的第一行中,您将一行设为driver.refresh()。在else阻止你break循环,并认为你应该有两个except块;一个用于NoSuchElementException,另一个用于其他例外。在第二个你应该break我猜的循环。这是一个示例代码:

import selenium.common.exceptions as SeleniumExceptions
from selenium import webdriver
import sys
driver = webdriver.Firefox()
while True:
    try:
        element = driver.find_element_by_id('some_id')
        # do whatever you want

    except SeleniumExceptions.NoSuchElementException:
        driver.refresh()
        continue

    except:
        print sys.exc_info()
        break

    else:
        break

<强> EDIT1:

如果您必须使用特定的frameiframe,则应使用driver.switch_to_frame(driver.find_element_by_id('frame_id'))切换回来并继续工作;或者如果您认为应该等待加载帧,可以使用以下代码:

from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
WebDriverWait(driver, timeout=10).until(EC.frame_to_be_available_and_switch_to_it(driver.find_element_by_id('frame_id')))