На чем лучше запускать селениум тесты php или js?

Раньше был небольшой опыт написания тестов через js. Сейчас попробовал сделать тоже в рамках phpunit PHPUnit_Extensions_Selenium2TestCase

но вот как-то написание getByClassName или click() на php выглядят немного извращением

есть аргументы в пользу чего либо?

и еще попутно вопрос - как определить можно ли физически кликнуть на кнопку? те проверить что она видимая, что она не перекрыта другим элементом у которого больше з-индекс или что она в пределах экрана?
также с модальным окном - как проверить что модал появился на экране?

спасибо
  • Вопрос задан
  • 327 просмотров
Пригласить эксперта
Ответы на вопрос 3
@emp1re
Писал тесты на
https://www.npmjs.com/package/selenium-webdriver
мне удобно так как моя среда разработки + прикрутил нужные мне пакеты.

Я думаю главный фактом должна быть code convention в команде.
Если сам и для себя то почему бы не попробовать новое.
Ну или делай зависимости от задачи и своих знаний в языке и среде разработки.
Ответ написан
Комментировать
@Sad_Bro
На темной стороне.
codeception.
$I->clik('button.start');

$I->waitForElementVisible('#modal', 30); // secs

Проверить видимость можно так
public function seePageHasElement($element)
    {
        $I = $this;
        try {
            $I->seeElement($element);
        } catch (\PHPUnit_Framework_AssertionFailedError $f) {
            return false;
        }
        return true;
    }
Ответ написан
Комментировать
@Talik0507
Работаю, Живу
и еще попутно вопрос - как определить можно ли физически кликнуть на кнопку? те проверить что она видимая, что она не перекрыта другим элементом у которого больше з-индекс или что она в пределах экрана?
также с модальным окном - как проверить что модал появился на экране?


1) Проверка видимости, действительно можно сделать через ожидания, как показал Дмитрий @Sad_Bro
Ибо для селениума проверка видимости - это проверка кликабельности по факту.

что она в пределах экрана?

не знаю зачем это нужно, но можно проскролиться к нужному элементу, Селениум обладает набором методов.
Если их не хватает, можно всегда обратиться к JS

ак проверить что модал появился на экране?

Найти этот класс.
например:

List list = driver.findElements(By.cssSelector("modal"));
if (list.size() > 0){
-- code
} else {
-- code
};
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы