Я тестирую регистрацию на нашем сайте, и одним из полей является раскрывающееся меню выбора.Тест полностью работает во всех браузерах Windows Desktop.Это также работает в Chrome на Mac.Эта проблема возникает только в Mac Safari 11.1:
При попытке выбрать желаемую опцию он сообщает, что элемент select не виден.
Мои тесты выполняются в Visual Studio через Browserstack.У меня есть скриншоты и видео, которые ясно показывают, что выбранный элемент виден (по крайней мере, для пользователя).Это не в нижней части страницы, там нет нижнего колонтитула, охватывающего какую-либо его часть.Я прокручиваю до каждого элемента, чтобы взаимодействовать с ним.
Мое устранение неполадок:
Чтобы увидеть, была ли проблема с доступностью из элемента select и ниже, я закомментировал кодкоторый взаимодействует с элементом select и успешно взаимодействует с элементом под ним (текстовое поле ввода).
Я добавил 30-секундное ожидание, прежде чем пытаться выбрать параметр в случае, если есть какой-либо видзадержки в драйвере / DOM, «видя» элемент select - та же ошибка.
Я дважды проверил мой XPath - на нашем локальном Mac XPath возвращает только 1 результат, и это выборрассматриваемый элемент (он выделяется при поиске кода по XPath).
Я использую метод Selenium.Support.UI для выбора параметра по его тексту.'option' содержит текст для выбора:
SelectElement select = new SelectElement (element);select.SelectByText (option);
... поэтому я попытался выбрать с помощью JavaScript, изменив индекс:
// Selects the option but no option change occurs from the user's perspective, nor are any events triggered based on the change
js.ExecuteScript("arguments[0].selectedIndex = \"" + optionIndex + "\";", element);
// Trigger the change event
js.ExecuteScript("var event = new Event('change', { bubbles: true }); arguments[0].dispatchEvent(event);", element);
... это не сработалолибо вместо того, чтобы получить «элемент не виден», ничего не изменилось, и тестовый скрипт перешел к следующему текстовому вводу.
Я проверил, что этот метод будет работать, проверив его вручную в Windows на консоли Chrome, а также на Macв Safari 11.1 (изменил идентификатор элемента select на someID):
var element = document.getElementById("someID");
element.selectedIndex = "3";
var event = new Event('change', { bubbles: true });
element.dispatchEvent(event);
... работает нормально.
Поэтому независимо от того, как я пытаюсь изменить элемент при запуске фактическоготест, либо я не виден, либо ничего не происходит.Так странно ...
Я упускаю здесь очевидное?Есть ли известная проблема с этим?Я думаю, что единственный другой способ проверить это - удалить Browserstack из уравнения и провести локальный тест на нашем Mac.Что, наверное, первое, что я должен был сделать ...