dzharii / swd-recorder

Selenium WebDriver Page Recorder (Page Objects)
MIT License
189 stars 71 forks source link

Can't add an element in swd #57

Open DaymaNKinG990 opened 6 years ago

DaymaNKinG990 commented 6 years ago

Привет Дим!) Hi dear dev. I found a bug in 2018. When i trying to add element, then it doesn't work. I don't know why. I updated chromedriver to latest version. So, mybe you can check it.

DaymaNKinG990 commented 6 years ago
dzharii commented 6 years ago

Привет @DaymaNKinG990, спасибо за баг-репорт, пожалуйста, попробуйте свежую версию тут:

https://github.com/dzharii/swd-recorder/releases (SWD PageRecorder 28 JUN 2018 v3.13.0)

DaymaNKinG990 commented 6 years ago

Спасибо большое, @dzharii ! Обязательно завтра на работе опробую новую версию)))

DaymaNKinG990 commented 6 years ago

И снова привет! @dzharii у меня снова трабла, я уже не совсем понимаю почему, но у меня на работе все также остался баг, хотя вчера вечером из дома я тестил обновленный билд, и он работал, с чем связанно тут, я конкретно сказать не могу, как то очень странно. Он все также копирует в Веб Элементы.

П.С. Обнаружил что через Firefox все работает, возможно что-то с Chrome. Попробую выяснить.

DaymaNKinG990 commented 6 years ago

Загрузил видеоролик в зипе. Конечно это не детальная инфа, но в Хроме не работает почему то, хотя дома работало, а вот Фаерфоксе все работает нормально.

bandicam 2018-06-28 12-36-47-336.zip

dzharii commented 6 years ago

@DaymaNKinG990 тут вот я мало чем могу помочь, разве что могу рекомендовать работать в FireFox ;) Причина может быть в политике безопасности Windows или самого Chtome. Какие именно настройки за это отвечают -- я не могу сказать. Если вы попробуете открыть инструменты разработчика Chtome, то там в Console скорее всего будет ошибка (это не простая задача, потому что WebDriver будет пытаться эту панель закрыть, действовать нужно быстро :D).

Еще у PageRecorder есть логи в папке logs , может быть там есть что-то интересное? (Exception / Error). Но да, если что-то работает в одном браузере, но не работает в другом -- это на 99% связано с настройками безопасности браузера.

DaymaNKinG990 commented 6 years ago

@dzharii Я вас понял, спасибо, постараюсь максимально выяснить)

DaymaNKinG990 commented 6 years ago

В логах ничего не нашел.

dzharii commented 6 years ago

@DaymaNKinG990

Если это поможет, то вот как этот "хак" с передачей элемента и браузера работает: Есть браузерный скрипт, который пишет в переменную (в браузере) document.swdpr_command SwdPageRecorder_v3.13.0.2018.06.28\JavaScript\ElementSearch.js

  createCommand = function(jsonData) {
    var myJSONText;
    hello("createCommand");
    myJSONText = JSON.stringify(jsonData, null, 2);
    document.swdpr_command = myJSONText; // <=== THIS
    return bye("createCommand");
  };

и есть код на стороне десктопного приложения, который эту переменную читает. Может случится, что либо скрипт не может записать значение (т.е. он выполняется. но значение document.swdpr_command для активного документа не меняется), либо десктнопное приложение (Webdriver) не может получить доступ к этой переменной и получает null/undefined при чтении. Это как раз может быть ограничено настройками безопасности, или, например, антивирусом

DaymaNKinG990 commented 6 years ago

@dzharii Да, кажется я понял, скорее антивирус, надо будет глянуть, спасибо за ответ)

DaymaNKinG990 commented 6 years ago

У меня вопрос @dzharii ! А получается этот рекордер, по мимо того что показывает путь к веб элементу и создает page object. Так поэтому page object можно генерировать Java файл. И насколько понял он делает проверку этих элементов через Assert, и в итоге получается как юнит тестирование, я правильно понял?

П.С. Я извиняюсь, мисс кликнул.