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

работа с Internet Explorer 8 on Windows Server 2008 R2


(Denis Vovchenko) #1

Есть тесты, которые на локалке(Internet Explorer 8 on Windows 7) запускаются отлично. Но когда мы пробуем запускать их на нашем сервере (Internet Explorer 8 on Windows Server 2008 R2) то тесты валятся(даже браузер не запускается) с ошибкой:

    Running TestSuite
Started InternetExplorerDriver server (32-bit)
2.46.0.0
Listening on port 13578
org.openqa.selenium.WebDriverException: Failed to navigate to http://rbcapp-dev-zt0:7018/erbc/. This usually means that a call to the COM method IWebBrowser2::Navigate2() failed. (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 15 milliseconds
Build info: version: '2.46.0', revision: '61506a4624b13675f24581e453592342b7485d71', time: '2015-06-04 10:22:50'
System info: host: 'rbc', ip: '192.168.3.76', os.name: 'Windows Server 2008 R2', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_71'
Session ID: 70e89e9a-972a-4005-99ba-17186ce2c359
Driver info: org.openqa.selenium.ie.InternetExplorerDriver
Capabilities [{platform=WINDOWS, javascriptEnabled=true, elementScrollBehavior=0, ignoreZoomSetting=false, enablePersistentHover=true, ie.ensureCleanSession=false, browserName=internet explorer, enableElementCacheCleanup=true, unexpectedAlertBehaviour=dismiss, version=8, pageLoadStrategy=normal, ie.usePerProcessProxy=false, cssSelectorsEnabled=true, ignoreProtectedModeSettings=false, requireWindowFocus=false, initialBrowserUrl=http://localhost:13578/, handlesAlerts=true, ie.forceCreateProcessApi=false, nativeEvents=true, browserAttachTimeout=0, ie.browserCommandLineSwitches=, takesScreenshot=true}]
 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
 at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
 at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:204)
 at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:156)
 at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:605)
 at org.openqa.selenium.remote.RemoteWebDriver.get(RemoteWebDriver.java:306)
 at pages.allPages.LoginPage.navigateTo(LoginPage.java:45)
 at tests.smokeTesting.portmone.MTCUkraine.test1CreateConnector(MTCUkraine.java:58)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:606)
 at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
 at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
 at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
 at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
 at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
 at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
 at org.testng.TestRunner.privateRun(TestRunner.java:767)
 at org.testng.TestRunner.run(TestRunner.java:617)
 at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
 at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
 at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
 at org.testng.SuiteRunner.run(SuiteRunner.java:240)
 at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
 at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
 at org.testng.TestNG.runSuitesSequentially(TestNG.java:1198)
 at org.testng.TestNG.runSuitesLocally(TestNG.java:1123)
 at org.testng.TestNG.run(TestNG.java:1031)
 at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:295)
 at org.apache.maven.surefire.testng.TestNGXmlTestSuite.execute(TestNGXmlTestSuite.java:84)
 at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:90)
 at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
 at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
 at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
org.openqa.selenium.NoSuchElementException: Unable to find element with xpath == //li[@id="header_select_module"]/a (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 20.14 seconds

Помогите, как решить проблему


(Aleksey) #2

А вы хоть гуглили эту проблему? Впрочем подозреваю, что это риторический вопрос :smile:
Подсказка: попробуйте погуглить этот вот кусок из вашего стектрейса “This usually means that a call to the COM method IWebBrowser2::Navigate2() failed”


(Denis Vovchenko) #3

На удивление, гуглил… Но решения не нашел.
Пробовали три браузера (Chrome, Firefox, IE) ни один не запускается.


(Sergey Korol) #4

Я бы начал с осознания того факта, что Windows Server в принципе не предназначен для работы в вэбе. Вот тут вам доступно это объясняют. Маленькая выдержка из оф. источников Microsoft:

As a best security practice, a server administrator should not browse Internet Web sites from the server. The administrator should only browse the Internet from a limited user account on a client work station to reduce the possibility of an attack on the server by a malicious Web site.

Решение конечно есть, насколько я понял (специфичное для связки версий ОС / браузера). Но надо ли оно вам?


(sveat0slav) #5

Попробуйте в настройках IE везде выставить галочку на Protected в Security, было пару воркараундов с реестром + можете тут https://code.google.com/p/selenium/wiki/InternetExplorerDriver#Required_Configuration почитать


(Denis Vovchenko) #6

Статью читал, до создания поста. Да, оно надо. Так как развертывать тестирование нужно на этом сервере. Подскажите, какое есть решение.


(Denis Vovchenko) #7

Галочки проставлял, ничего не изменилось.


(Sergey Korol) #8

Откуда ж мне знать? :slight_smile: В статье пишут, что оно есть. И для каждой конфигурации оно свое. У меня нет Windows Server под рукой, чтобы проверить. Быстрое гугление привело к отключению Internet Explorer Enhanced Security. Пробуйте, потом напишите о результате.


(Aleksey) #9

Вы запускаете тесты руками или через какой-то CI-сервер?
Если у вас не запускается не только IE, но и другие браузеры, то у вас явно не ИЕ-специфическая проблема. Попробуйте разобраться почему не стартуют тесты при запуске в Файрфоксе (какие ошибки получаете?)


(Denis Vovchenko) #10

Запускаем через Jenkins. Сейчас настроили как порекомендовал ArtOfLife. Теперь валится другой эксепшн:

    Running TestSuite
Started InternetExplorerDriver server (64-bit)
2.46.0.0
Listening on port 2545
org.openqa.selenium.TimeoutException: Element has not been found within 20 seconds. 
Build info: version: '2.46.0', revision: '61506a4624b13675f24581e453592342b7485d71', time: '2015-06-04 10:22:50'
System info: host: 'rbc', ip: '192.168.3.76', os.name: 'Windows Server 2008 R2', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_71'
Driver info: driver.version: unknown
    at util.Waiter.waitFor(Waiter.java:43)
    at pages.WebDriverHelper.waitForElement(WebDriverHelper.java:275)
    at pages.allPages.LoginPage.waitForPage(LoginPage.java:51)
    at pages.allPages.LoginPage.navigateTo(LoginPage.java:46)
    at tests.smokeTesting.portmone.MTCUkraine.test1CreateConnector(MTCUkraine.java:58)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
    at org.testng.TestRunner.privateRun(TestRunner.java:767)
    at org.testng.TestRunner.run(TestRunner.java:617)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
    at org.testng.SuiteRunner.run(SuiteRunner.java:240)
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1198)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1123)
    at org.testng.TestNG.run(TestNG.java:1031)
    at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:295)
    at org.apache.maven.surefire.testng.TestNGXmlTestSuite.execute(TestNGXmlTestSuite.java:84)
    at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:90)
    at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
    at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
Caused by: org.openqa.selenium.TimeoutException: Timed out after 20 seconds waiting for util.Waiter$1@564d088e
Build info: version: '2.46.0', revision: '61506a4624b13675f24581e453592342b7485d71', time: '2015-06-04 10:22:50'
System info: host: 'rbc', ip: '192.168.3.76', os.name: 'Windows Server 2008 R2', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_71'
Session ID: 33c783d5-ee2c-4220-8262-d344e860ad62
Driver info: org.openqa.selenium.ie.InternetExplorerDriver
Capabilities [{platform=WINDOWS, javascriptEnabled=true, elementScrollBehavior=0, ignoreZoomSetting=false, enablePersistentHover=true, ie.ensureCleanSession=false, browserName=internet explorer, enableElementCacheCleanup=true, unexpectedAlertBehaviour=dismiss, version=8, pageLoadStrategy=normal, ie.usePerProcessProxy=false, cssSelectorsEnabled=true, ignoreProtectedModeSettings=false, requireWindowFocus=false, initialBrowserUrl=http://localhost:2545/, handlesAlerts=true, ie.forceCreateProcessApi=false, nativeEvents=true, browserAttachTimeout=0, ie.browserCommandLineSwitches=, takesScreenshot=true}]
    at org.openqa.selenium.support.ui.WebDriverWait.timeoutException(WebDriverWait.java:80)
    at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:229)
    at util.Waiter.waitFor(Waiter.java:36)
    ... 31 more
org.openqa.selenium.UnhandledAlertException: Modal dialog present: The privacy icon appears in the status bar each time a cookie is restricted based on your privacy settings.  To see a privacy report, double-click the icon when it appears.
Build info: version: '2.46.0', revision: '61506a4624b13675f24581e453592342b7485d71', time: '2015-06-04 10:22:50'
System info: host: 'rbc', ip: '192.168.3.76', os.name: 'Windows Server 2008 R2', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_71'
Session ID: 33c783d5-ee2c-4220-8262-d344e860ad62
Driver info: org.openqa.selenium.ie.InternetExplorerDriver
Capabilities [{platform=WINDOWS, javascriptEnabled=true, elementScrollBehavior=0, ignoreZoomSetting=false, enablePersistentHover=true, ie.ensureCleanSession=false, browserName=internet explorer, enableElementCacheCleanup=true, unexpectedAlertBehaviour=dismiss, version=8, pageLoadStrategy=normal, ie.usePerProcessProxy=false, cssSelectorsEnabled=true, ignoreProtectedModeSettings=false, requireWindowFocus=false, initialBrowserUrl=http://localhost:2545/, handlesAlerts=true, ie.forceCreateProcessApi=false, nativeEvents=true, browserAttachTimeout=0, ie.browserCommandLineSwitches=, takesScreenshot=true}]
    at sun.reflect.GeneratedConstructorAccessor11.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:204)
    at org.openqa.selenium.remote.ErrorHandler.createUnhandledAlertException(ErrorHandler.java:185)
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:152)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:605)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:628)
    at org.openqa.selenium.ie.InternetExplorerDriver.getScreenshotAs(InternetExplorerDriver.java:194)
    at tests.ScreenshotListener.onTestFailure(ScreenshotListener.java:28)
    at org.testng.internal.Invoker.runTestListeners(Invoker.java:1895)
    at org.testng.internal.Invoker.runTestListeners(Invoker.java:1879)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:778)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
    at org.testng.TestRunner.privateRun(TestRunner.java:767)
    at org.testng.TestRunner.run(TestRunner.java:617)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
    at org.testng.SuiteRunner.run(SuiteRunner.java:240)
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1198)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1123)
    at org.testng.TestNG.run(TestNG.java:1031)
    at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:295)
    at org.apache.maven.surefire.testng.TestNGXmlTestSuite.execute(TestNGXmlTestSuite.java:84)
    at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:90)
    at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
    at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)

Results :

(Aleksey) #11

Дженкинс нода ранится как сервис или как приложение? Если как сервис, то запустите его как отдельное приложение - это решает проблему с такими симптомами, как у вас.


(Sergey Korol) #12

Копайтесь еще в настройках IE. :wink:


(Denis Vovchenko) #13

Спасибо, буду разбираться :blush: Результат обязательно отпишу.


(Denis Vovchenko) #14

Спасибо, запустили как отдельное приложение - все заработало!