我需要一种尝试点击元素的方法,但如果不存在,测试不应该失败。 点击“火与忘记”。
我想直接在Selenese(或js,和 user-extensions.js )中进行,而不是在PHPUnit / JUnit中。
我认为这可能是一个“用户扩展”功能,所以我搜索openqa Site,但我找不到任何有用的东西。
更新:我自己的第一次尝试:(不工作)
Selenium.prototype.doClickAndForget= function(locator) {
this.page().click(locator));
return true;
};
关于如何使其发挥作用的任何想法?
答案 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不会抛出任何错误。 它是一个黑客,但我在我的网站上有“未定义”的内容,所以我需要一种方法来处理可能性。