一种“尝试”点击一个元素而不会失败的方法,如果不存在的话(火与忘记)

时间:2011-07-05 08:56:33

标签: javascript selenium selenium-ide

我需要一种尝试点击元素的方法,但如果不存在,测试不应该失败。 点击“火与忘记”。

我想直接在Selenese(或js,和 user-extensions.js )中进行,而不是在PHPUnit / JUnit中。

我认为这可能是一个“用户扩展”功能,所以我搜索openqa Site,但我找不到任何有用的东西。

更新:我自己的第一次尝试:(不工作)

Selenium.prototype.doClickAndForget= function(locator) {
    this.page().click(locator));
    return true;
};

关于如何使其发挥作用的任何想法?

2 个答案:

答案 0 :(得分:0)

您可以在click(String)中为DefaultSelenium方法创建一个包装器,如

public void clickWithoutFail(String locator){
    try{
        selenium.click(locator);
    }catch(SeleniumException ex){

    }
}

上面的包装方法可以解决您的问题。它将忽略在点击不存在的元素期间发生的任何错误。

您可以通过使用try/catch方法检查定位器的存在来避免isVisible()阻止。

希望这有帮助。

答案 1 :(得分:0)

我用“storeEval()”和纯粹的js做到了。 要么我有一个有效的链接或我返回一个必要的元素“假klick”打开,所以sel不会抛出任何错误。 它是一个黑客,但我在我的网站上有“未定义”的内容,所以我需要一种方法来处理可能性。