Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Страница "Ошибка в сертификате безопасности"


(breakmt) #1

Приветствую. уважаемые автоматизаторы! :relieved: Возникла проблема, хотелось бы получить советы как быть. После перехода по ссылке открывается окно IE с ошибкой сертификата безопасности. У менеджера проекта сертификат попросил, но сделают его непонятно когда и пока что хочется эту ситуацию как-то обойти чтобы продолжить разработку.

Есть ли какой-то способ поставить простой “костыль” до тех пор пока ситуация не исправится?

На всякий случай: webdriver + java и скрин для наглядности :grinning:


(Александр Таранков) #2

уже была такая тема


(rmerkushin) #3

Если у сайта самоподписанный сертификат, то его просто нужно добавить в доверенные и эта шляпа в IE больше не будет вылазить :smile: Еще в настройках желательно указать игнорирование устаревших.


(breakmt) #4

Так и сделаю когда нам выдадут нормальный сертификат, пока такой возможности нет :pensive:


(rmerkushin) #5

Сертификат можно сделать самим и подписать его. Попросите разработчиков.


(breakmt) #6

Ага, нашел, как раз для IE нужно:

webDriver.navigate().to(“javascript:document.getElementById(‘overridelink’).click()”);

По этому решению несколько вопросов, думаю будет полезно узнать не только мне, но и другим новичкам, дабы разложить все по полкам:

  1. Почему на этой странице не срабатывает

webDriver.findElement(By.id(“overridelink”)).click();
Элемент с таким id не находится

  1. В связи с первым вопросом - как быть с ожиданием загрузки страницы (используя WebDriverWait)? Ведь элементы не получается найти и подождать

(Александр Таранков) #7

Ты копай глубже, что ты готового решения ждешь? Тебе подсказали варианты. Если не работают, надо ещё гуглить. Ну а для начала попробовать все предложенные.

  1. тот вариант, о котором ты спрашиваешь подтвержденно работает для IE7,8,9. Если у тебя 11-й, то может и не работать
  2. попробуй вариант с self-signed. Для этого надо научиться работать с сертификатами: генерить, подписывать, устанавливать на сервер и рабочую машину
  3. попробуй вариант с изменением политик безопасности браузера
  4. если есть возможность, то самым простым решением будет не использовать IE, пока нормальный сертификат не появится

(breakmt) #8

Ты копай глубже, что ты готового решения ждешь?

Естественно. А по твоему форум нужен для посылания в гугл?

Ты невнимательно прочитал то что я спросил. Я написал что по решению

webDriver.navigate().to(“javascript:document.getElementById(‘overridelink’).click()”);

у меня возникли вопросы, а не что оно не работает. Вопрос в том почему в одном случае кликнуть по ссылке удается, а если делать webDriver.findElement(By.id(“overridelink”)).click(); то элемент не находится.


(Sergey Korol) #9

Internet Explorer uses a local dll (ieframe.dll) to present warning dialogs to the user. When the user visits a website which presents an invalid SSL certificate for example, the warning dialog (res://ieframe.dll/invalidcert.htm?SSLError=33554432) is shown and the user is prompted whether to accept and continue or not.
The SSL warning dialog uses active scripting when the user clicks the link to accept the invalid certificate.

Собственно могу допустить, что когда вы драйвером грузите конкретную страницу без сертификата, браузер инжектит свой статический ресурс, который находится вне контекста загруженной пейджи. Т.е. драйвер технически в рантайме ничего не может знать о DOM’е загруженного локального статического ресурса. Посему тут срабатывает только чит выполнения JS кода по клику элемента с id='overridelink' (наш аксепт линк) непосредственно в адресной строке браузера.

П.С. Знатоки кишков браузеров / драйвера, поправьте, если ошибаюсь. :wink:


(rmerkushin) #10

Как то так оно и есть в IE, будь он не ладен :smile: Лучший вариант это заюзать сертификат и не городить огородов вокруг )