Нужно преобразовать в executeInSelenium

codeception
alert
webdriver
php
Теги: #<Tag:0x00007f7b620e7a60> #<Tag:0x00007f7b620e78f8> #<Tag:0x00007f7b620e77b8> #<Tag:0x00007f7b620e7678>

(Ray Romanov) #1

Тут http://stackoverflow.com/questions/8244723/alert-handling-in-selenium-webdriver-selenium-2-with-java наткнулся на способ ожидания события Alert.
Вот код который мне нужен:

public void checkAlert() {
    try {
        WebDriverWait wait = new WebDriverWait(driver, 2);
        wait.until(ExpectedConditions.alertIsPresent());
        Alert alert = driver.switchTo().alert();
        alert.accept();
    } catch (Exception e) {
        //exception handling
    }
}

Уважаемые помогите его преобразовать для выполнения в executeInSelenium.


(Ray Romanov) #2

А в ответ тишина, странно, активный форум.


(Sergey Korol) #3

А чему вы удивляетесь? Начнем с того, каков процент использующих codeception на данном форуме? Статистика говорит, что с августа 2013 было создано всего 43 темы. Там и десятка активных юзеров не наберется.


(Ray Romanov) #4

И Davert куда-то пропал, дело не в Codeception, вопрос может быть и в Pyton, Ruby, хочу понять сам механизм потому что примеров фиг да нифига :frowning:


(Nimestel) #5

Поместить в AcceptanceTester

public function checkAlert()
{
    $I = $this;
    return $I->executeInSelenium(function (\Facebook\WebDriver\WebDriver $webdriver) {
        try {
            $webdriver->wait(1.5, BasePage::TIMEOUT)->until(
                WebDriverExpectedCondition::alertIsPresent()
            );
            $webdriver->switchTo()->alert()->accept();
            return true;
        } catch (Exception $e) {
            echo('alert is not present');
            return false;
        }
    });
}

Вызывается через $I->checkAlert();