Как получить текущий браузер в тесте Selenium RC? - PullRequest
1 голос
/ 18 июля 2011

У меня возникла проблема, которую я до сих пор не могу решить после нескольких часов жесткого поиска в Google: вы мой последний шанс ...

У меня есть простая страница PHP (скажем, bad_request.php "), которые отвечают кодом ошибки 400 Bad Request:

<?php
    header('Status: 400 Bad Request', false, 400);
    header($_SERVER['SERVER_PROTOCOL'].' 400 Bad Request', false, 400);

    exit('Error message');
?>

У меня есть тестовый набор Selenium RC с определенным набором браузеров:

static public $browsers = array(
    array(
        'name'        => 'Google Chrome 12 on Win7',
        'browser'     => '*googlechrome'
    ),
    array(
        'name'    => 'Internet Explorer 9 on Win7',
        'browser' => '*iehta'
    ),
    ...
)

И у меня есть тестметод, который открывает «bad_request.php» и проверяет код состояния И сообщение об ошибке.

Дело в том, что все браузеры не имеют одинаковое поведение для кода состояния 400: Internet Explorer отображает свою собственную страницу ошибки (и не показывает «сообщение об ошибке», отправленное с помощью функции выхода), а другие браузеры отображают простую пустую страницу с «сообщением об ошибке».

Вот почему я хотел бы, чтобы мой метод тестирования выглядел так:

public function testBadRequest()
{
    $this->open('bad_request.php');

    /*
     * Test the status code with my own method
     */
    $this->assertStatusCode(400);

    /*
     * Test the page content
     */
    // Case of Internet Explorer
    if (preg_match('`^Internet Explorer`', $this->browserName )) {
        $this->assertTextPresent('HTTP 400');
    }
    // Case of any other browser
    else {
        $this->assertTextPresent('Error message');
    }
}

К сожалению, browserName всегда имеет значение null, и я не нашел никакого решения, чтобы получить текущий браузер в тестовом методе.

У кого-нибудь здесь есть решение?

1 Ответ

0 голосов
/ 03 декабря 2013

В C # (отличается от вашего вопроса PHP, но может помочь кому-то, кто сталкивается с этим вопросом, как я), я использовал driver.Capabilities.BrowserName, где драйвер - это OpenQA.Selenium.Remote.RemoteWebDriver текущего запуска теста.

...