Перейти к содержимому

Фотография

Проблемы с InternetExplorerDriver


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 27

#1 Pirokar

Pirokar

    Новый участник

  • Members
  • Pip
  • 23 сообщений

Отправлено 11 июня 2014 - 20:44

Добрый день! У меня возникла проблема. Есть код, который прекрасно работает в Firefox и Chrome. Но стоит мне в качества драйвера назначить InternetExplorerDriver (последняя версия), как появляется проблема.
Я пытаюсь загрузить нужную страницу с помощью оператора driver.get(url), он помещает нужный мне адрес в адресную строку, но не осуществляет перехода по ней! Т.е. страница остается старая, а адрес в строке новый. Подскажите, пожалуйста, что можно сделать?


  • 0

#2 vmaximv

vmaximv

    Опытный участник

  • Members
  • PipPipPipPip
  • 350 сообщений

Отправлено 12 июня 2014 - 06:47

Какие версии у браузера и ОС'и?
  • 0

#3 Pirokar

Pirokar

    Новый участник

  • Members
  • Pip
  • 23 сообщений

Отправлено 12 июня 2014 - 09:41

Пробовал на работе на Windows 8 и Internet Explorer 10 и дома на 8.1 и IE11. Причем штука в том, что он как-то избирательно подходит к переходам. В начале он отрабатывает, а потом отказывается это делать. То же самое с кликами, как выяснилось. Кликает сперва, а потом нет. Ладно бы везде не работали, а так только в IE ((


  • 0

#4 vmaximv

vmaximv

    Опытный участник

  • Members
  • PipPipPipPip
  • 350 сообщений

Отправлено 12 июня 2014 - 10:25

С десяткой проблем быть не должно. Показывайте трассу/эксепшен/логи_драйвера.
С 11 убедитесь что выполнены все необходимые настройки https://code.google....tExplorerDriver

А ignoreProtectedModeSettings часом в тру не сетаете?

ignoreProtectedModeSettings - Whether to skip the protected mode check. If set, tests may become flaky, unresponsive, or browsers may hang. If not set, and protected mode settings are not the same for all zones, an exception will be thrown on driver construction. Only "best effort" support is provided when using this capability.


  • 1

#5 Pirokar

Pirokar

    Новый участник

  • Members
  • Pip
  • 23 сообщений

Отправлено 12 июня 2014 - 10:42

Нет, у меня появлялась ошибка про тайм зоны на 11. Я вообще ничего не сетал, просто запустить как driver = new InternetEplorerDriver(). А что нужно логить? В коде при пошаговом дебаге я вижу, как в коде выполняется driver.get() - при этом он на нужную страницу не переходит, только адрес кидает в адресную строку. Если бы можно было залогить, что конкретно драйвер сервер пытается сделать... Но я не знаю как)


  • 0

#6 vmaximv

vmaximv

    Опытный участник

  • Members
  • PipPipPipPip
  • 350 сообщений

Отправлено 12 июня 2014 - 10:48

Вы же читали тему про логирование ;)
http://software-test...er/#entry123093

И... попробуйте в дебаге сделать это ручками - может ВебДрайвер тут вовсе не при чем.
  • 1

#7 Pirokar

Pirokar

    Новый участник

  • Members
  • Pip
  • 23 сообщений

Отправлено 12 июня 2014 - 11:27

Что именно сделать ручками? 
 
Почему то берет в спойлер только первую строку...
Exception случается, потому что код выполнил driver.get()  и ожидает другую страницу.
 
Started InternetExplorerDriver server (32-bit)
2.42.0.0
Listening on port 26639
Log level is set to DEBUG
Log file is set to E:\webdriver.log
июн 12, 2014 3:10:59 PM org.apache.http.impl.client.DefaultRequestDirector tryExecute
INFO: I/O exception (java.net.SocketException) caught when processing request: Software caused connection abort: recv failed
июн 12, 2014 3:10:59 PM org.apache.http.impl.client.DefaultRequestDirector tryExecute
INFO: Retrying request
Exception in thread "main" org.openqa.selenium.NoSuchElementException: Unable to find element with xpath == //*[@id='node-children-group-91']/div/div[1]/h4/a/div/ng-pluralize (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 292 milliseconds
For documentation on this error, please visit: http://seleniumhq.or...ch_element.html
Build info: version: '2.41.0', revision: '3192d8a', time: '2014-03-27 17:18:15'
System info: host: 'FisherPC', ip: '192.168.1.123', os.name: 'Windows 8.1', os.arch: 'x86', os.version: '6.3', java.version: '1.8.0_05'
Driver info: org.openqa.selenium.ie.InternetExplorerDriver
Capabilities [{browserAttachTimeout=0, enablePersistentHover=true, ie.forceCreateProcessApi=false, ie.usePerProcessProxy=false, ignoreZoomSetting=false, handlesAlerts=true, version=11, platform=WINDOWS, nativeEvents=true, ie.ensureCleanSession=false, elementScrollBehavior=0, ie.browserCommandLineSwitches=, requireWindowFocus=false, browserName=internet explorer, initialBrowserUrl=http://localhost:26639/, takesScreenshot=true, javascriptEnabled=true, ignoreProtectedModeSettings=false, enableElementCacheCleanup=true, cssSelectorsEnabled=true, unexpectedAlertBehaviour=dismiss}]
Session ID: 613f938b-65f8-44da-b134-a14afb890e23
at sun.reflect.GeneratedConstructorAccessor13.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:193)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:595)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:348)
at org.openqa.selenium.remote.RemoteWebDriver.findElementByXPath(RemoteWebDriver.java:445)
at org.openqa.selenium.By$ByXPath.findElement(By.java:357)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:340)
at AllTests.pages.TopologyTestLowLogic.checkChildrenGroups(TopologyTestLowLogic.java:1592)
at AllTests.pages.TopologyTestLowLogic.checkHostInstances(TopologyTestLowLogic.java:1631)
at AllTests.pages.TopologyTestLowLogic.executeCheck(TopologyTestLowLogic.java:82)
at AllTests.Tests.TopologyTest.Run(TopologyTest.java:33)
at AllTests.Tests.TopologyTest.<init>(TopologyTest.java:26)
at AllTests.General.Start.main(Start.java:37)
Disconnected from the target VM, address: '127.0.0.1:14402', transport: 'socket'
 
Process finished with exit code -1
 
Прикрепил два лога - в debug уровне и в trace.

Сообщение отредактировал barancev: 16 июня 2014 - 08:19
Удалён приаттаченный файл, содержащий конфиденциальную информацию

  • 0

#8 vmaximv

vmaximv

    Опытный участник

  • Members
  • PipPipPipPip
  • 350 сообщений

Отправлено 12 июня 2014 - 11:53

Эммм...
Сначала вы говорите

driver.get(url), он помещает нужный мне адрес в адресную строку, но не осуществляет перехода по ней!

Потом

Кликает сперва, а потом нет.

А по факту вываливаете банальный
org.openqa.selenium.NoSuchElementException: Unable to find element with xpath
С дюрейшном 292 milliseconds.
Хотя если смотреть логи, первый элемент который вы ищете //*[@id="email"] ищется около 30 секунд.

#чтотонетак
 

Что именно сделать ручками?

Поставить бряк на проблемном driver.get и руками сделать переход.
По логам все ок - запрос на get прошел {"url":"http://xxxxxxxxxxxxx...bt1/server/77"}
, дождалось readyState==complite, нашло первый элемент //*[@id='node-stat']/div[1]/h3/span, упало на поиске второго элемента.


Сообщение отредактировал barancev: 16 июня 2014 - 14:15
Удалена конфиденциальная информация по просьбе автора

  • 1

#9 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 12 июня 2014 - 11:59

Судя по логу -- никаких серьёзных проблем нет, просто элемент не найден.

 

get не гарантирует окончания загрузки страницы, используйте ожидание появления элемента.


  • 1
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#10 Pirokar

Pirokar

    Новый участник

  • Members
  • Pip
  • 23 сообщений

Отправлено 12 июня 2014 - 12:00

Я же написал, что прямых эксепшенов по моей проблеме нет! В дебаге я вижу, как код driver.get(url) выполняется, но он не выхывает перехода на нужную страницу, только новый адрес из url подставляется в адресную строку и все. Второе - он кликает кодом element.click() по ссылке, но опять не переходит. При этом никаких эксепшенов по этому поводу нет. Эксепшен выше случается потому, что после driver.get() в нормальных браузерах ожидается, что будет загружен другая страница. А здесь этого не происходит. Он пытается найти элемент со страницы, которые должен загрузить driver.get() и, естественно, не находит.

get не гарантирует окончания загрузки страницы, используйте ожидание появления элемента.

 

Дело в том, что он даже не начинает загрузку.


  • 0

#11 vmaximv

vmaximv

    Опытный участник

  • Members
  • PipPipPipPip
  • 350 сообщений

Отправлено 12 июня 2014 - 12:20

Так а руками проверяли? Может у вас апп в ИЕ бажит.
  • 1

#12 Pirokar

Pirokar

    Новый участник

  • Members
  • Pip
  • 23 сообщений

Отправлено 12 июня 2014 - 13:06

Да, оказалось, что аналоговый вариант driver.get() тоже не работает. Прошу прощения! И спасибо всем за помощь! :-)


  • 0

#13 Pirokar

Pirokar

    Новый участник

  • Members
  • Pip
  • 23 сообщений

Отправлено 15 июня 2014 - 13:29

Чтобы не плодить темы, задам новый вопрос здесь. Все равно название темы подходит :-) 

В IE driver обнаружил проблему: команда driver.getCurrentUrl() возвращает url предыдущей страницы! Как так? Кто-нибудь сталкивался с этим? 

Уже в дебаге подождал, пока страница полностью загрузится, забил в watch driver.getCurrentUrl() и все равно предыдущая страница!


  • 0

#14 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 15 июня 2014 - 15:55

Пруф?


  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#15 Pirokar

Pirokar

    Новый участник

  • Members
  • Pip
  • 23 сообщений

Отправлено 16 июня 2014 - 07:15

Я не могу дать ссылку на проект компании, т.к. это будет разглашение КТ. Но написанное выше мной - правда. В FireFox все работает нормально, проблема с IE.


  • 0

#16 vmaximv

vmaximv

    Опытный участник

  • Members
  • PipPipPipPip
  • 350 сообщений

Отправлено 16 июня 2014 - 07:20

Тогда косите приатаченные логи, там урлы есть :)
  • 0

#17 Pirokar

Pirokar

    Новый участник

  • Members
  • Pip
  • 23 сообщений

Отправлено 16 июня 2014 - 07:33

Как их закосить? Не могу изменить старое сообщение

Алексей, я скинул вам кое-что в личку. Посмотрите, пожалуйста!


  • 0

#18 Pirokar

Pirokar

    Новый участник

  • Members
  • Pip
  • 23 сообщений

Отправлено 18 июня 2014 - 07:10

После driver.get(url), который подгружает страницу корректно, любая следующая операция со страницей приводит к NoSuchWindow exception. 

Нашел в интернете это:

You may be running afoul of issue 6511[1]. The driver can lose connection with IE11, even if you're doing everything correctly. There is currently no known workaround; the issue is squarely in Microsoft's hands. The root issue with IE11 can be reproduced entirely outside WebDriver code, using only COM interop calls, and we have demonstrated the issue to members of the IE team.
At this point, the general state of affairs with IE11 is that if you get it working, count yourself lucky, but when it goes pear-shaped, you're on your own. The situation is unfortunate, but we are where we are.

Но тут говорят, что все печально и не лечится. Может это все же можно вылечить?


  • 0

#19 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 18 июня 2014 - 07:41

http://selenium2.ru/...11-support.html


  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#20 artyomzp

artyomzp

    Новый участник

  • Members
  • Pip
  • 9 сообщений

Отправлено 23 июня 2014 - 09:56

Добрый день. Также пишу свои вопросы сюда, т.к. тема вроде как подходит, если нужно будет вынесу в отдельную тему.

 

Система kubuntu. Предварительно создал тесты в  Selenium IDE. Далее запускаю их командой в консоли:

 

java -jar selenium-server-standalone-2.42.2.jar -htmlSuite *firefox http://localhost suite.html result.html

 

В ходе выполнения появляется ошибка:

 

Default driver org.openqa.selenium.ie.InternetExplorerDriver registration is skipped: registration capabilities Capabilities [{platform=WINDOWS, ensureCleanSession=true, browserName=internet explorer, version=}] does not match with current platform: LINUX

 

Далее сами тесты выполняются в фаерфокс, но после выполнения фаерфокс не закрывается и  в консоли нет сообщений о завершении, последнее сообщение это:

 

12:25:34.075 INFO - Launching Firefox...
12:25:37.046 INFO - Checking Resource aliases
 
Также файл-отчёт result.html - пустой! Проьсба подсказать решение проблемы, т.к. застопорился на этом( Если решение тривиальное, просьба не судить строго, т.к.  я только начинающий пользователь) 
 
Selenium.png

  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных