Способ «попытаться» щелкнуть по элементу без сбоев, если он отсутствует (запустить и забыть) - PullRequest
0 голосов
/ 05 июля 2011

Мне нужен способ попробовать нажать на элемент, но если его там нет, тест не должен провалиться. Вид щелчка «Огонь и забудь».

Я хочу сделать это непосредственно в Selenese (или js, как для user-extensions.js ), а не в PHPUnit / JUnit.

Я подумал, что, возможно, для этого нужна функция "user-extensions", поэтому я искал openqa Site , но не нашел ничего полезного.

Обновление: моя первая попытка: (не работает)

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

Есть идеи, как заставить это работать?

Ответы [ 2 ]

0 голосов
/ 09 августа 2011

Я сделал это с "storeEval ()" и чистым JS.Либо я получил действительную ссылку, либо вернул обязательный элемент для «fake klick», поэтому sel не будет выдавать никаких ошибок.Это хак, но у меня на сайте был «неопределяемый» контент, поэтому мне нужен был способ использовать все возможности.

0 голосов
/ 05 июля 2011

Может быть, вы можете создать оболочку для click(String) метода в DefaultSelenium как

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

    }
}

Вышеописанный метод может решить вашу проблему. Он будет игнорировать любые ошибки, возникшие при нажатии на несуществующий элемент.

Вы можете избежать блока try/catch, проверив наличие локатора с помощью метода isVisible().

Надеюсь, это поможет.

...