Хобрук: Ваш путь к мастерству в программировании

Скрипты веб-драйвера Selenium не работают на удаленном компьютере для браузера Chrome

Каждый раз, когда я запускаю свои тестовые примеры селена, несколько (5-6) тестовых случаев терпят неудачу при запуске на удаленном рабочем столе. Но когда я запускаю свой локальный, они абсолютно нормально работают. И мой локальный, и RDP имеют одинаковую версию драйвера Chrome, одну и ту же ОС (win7) и одну и ту же версию браузера. Ниже я вижу два вида ошибок в файле strace.

1. неизвестная ошибка: элемент не кликабельный в точке (611, 449). Другой элемент получит ссылку на элемент click 2.stale: элемент не прикреплен к документу страницы.

Я использую удаленный драйвер wedriver new RemoteWebDriver(новый URL(driverUrl), browser.getCapabilities());

Я понятия не имею, почему некоторые из них терпят неудачу только на RDP. Любая помощь будет принята с благодарностью.


  • На мой взгляд, это никак не связано с хромом. В удаленном Firefox вы получите такое же исключение. Но это только мое предположение. 04.05.2016

Ответы:


1

Обычно проблемы со скриптами. Что вы можете сделать, чтобы исправить 1)unknown error: Element is not clickable at point (611, 449). Other element would receive the click :

  • Всегда запускайте window.maximize() перед тестом
  • подождите, пока элемент станет видимым
  • Улучшите локатор, иногда он может не нажимать на то, что вы думаете

Что нужно исправить 2.stale element reference: element is not attached to the page document: Не использовать список веб-элементов, находить элемент каждый раз, когда вы его используете, и эта проблема обычно будет исправлена.

04.05.2016

2

Когда драйвер запускает тест на удаленном компьютере, я видел, что он не запускается в моем веб-приложении так же, как на моем рабочем столе, из-за того, что браузер настроен на первое время. Для браузера, когда он запускается драйвером, он может выглядеть как новый пользователь. Вы можете увидеть это, если сможете наблюдать за своей удаленной машиной, когда на ней выполняется тест. Это убивало меня, в частности, с Firefox, где мне приходилось залезать в файлы конфигурации под капотом, чтобы убить поведение при первом запуске. Вы также можете попробовать сделать снимок экрана, если по какой-то причине вам неудобно наблюдать за выполнением теста на целевом удаленном компьютере.

Другие мысли...

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

03.05.2016
  • Elke, спасибо за ответ. Я не вижу никакой разницы на Remote . Это выполнялось так же, как на моем локальном . Если говорить о коде, то странная часть заключается не в том, что каждый раз один и тот же тестовый пример дает сбой, один раз тестовый пример, другой раз другой тестовый пример, но ч / б 2 ошибки, которые я упомянул, и работают нормально без каких-либо проблем на местный . Мой RDP имеет более высокую конфигурацию, чем мой локальный, и находится в той же сети. Это что-то, что может привести к сбою тестов? 03.05.2016
  • Некоторые другие мысли, разница в разрешении экрана между вашей машиной и пультом, к сожалению, может иметь значение. Максимизация, как предложено в другом посте, может не помочь, если разрешение экрана слишком маленькое, а целевой элемент оказывается за пределами экрана и не обрабатывается. Хотя, как всегда предполагает максимизация, на самом деле концепция состоит в том, чтобы сделать тест воспроизводимым и вести себя одинаково каждый раз на каждой машине. 12.05.2016
  • У меня точно такая же проблема. Firefox/chrome работают нормально локально, но при вызове тестов на моем экземпляре ec2 они терпят неудачу на случайных элементах. Добавление сна и максимизация окон не сработало. Как вы решили это? Я искал вверх и вниз, и не нашел полезных ресурсов. 03.10.2017
  • Новые материалы

    Я собираюсь научить вас Python шаг за шагом
    Привет, уважаемый энтузиаст Python! 👋 Готовы погрузиться в мир Python? Сегодня я приготовил для вас кое-что интересное, что сделает ваше путешествие более приятным, чем шарик мороженого в..

    Альтернатива шаблону исходящих сообщений для архитектуры микросервисов
    Познакомьтесь с двухэтапным сообщением В этой статье предлагается альтернативный шаблон для папки Исходящие : двухэтапное сообщение. Он основан не на очереди сообщений, а на..

    React on Rails
    Основное приложение Reverb - это всеми любимый монолит Rails. Он отлично обслуживает наш API и уровень просмотра трафика. По мере роста мы добавляли больше интерактивных элементов..

    Что такое гибкие методологии разработки программного обеспечения
    Что представляют собой гибкие методологии разработки программного обеспечения в 2023 году Agile-методологии разработки программного обеспечения заключаются в следующем: И. Введение A...

    Ториго  — революция в игре Го
    Наш следующий вызов против ИИ и для ИИ. Сможет ли он победить людей в обновленной игре Го? Обратите внимание, что в следующей статье AI означает искусственный интеллект, а Goban  —..

    Простое развертывание моделей с помощью Mlflow — Упаковка классификатора обзоров продуктов NLP от HuggingFace
    Как сохранить свои модели машинного обучения в формате с открытым исходным кодом с помощью MLFlow, чтобы позже получить возможность легкого развертывания. Сегодня модели упаковки имеют несколько..

    Математика и интуиция - Часть 1
    У каждой математической формулы есть доказательство. Часто эти доказательства слишком сложно понять, поскольку многие из них основаны на индукции, некоторые - на очень сложных наблюдениях, а..