2015-08-25 2 views
0

Я запускаю автоматические тесты браузера IE с использованием Watin 2.1.0. Они правильно работать на моей локальной машине, однако я стараюсь, чтобы заставить их работать на моем TeamCity сборки машины, но я получаю эту ошибку, когда тесты запускаются на одной и той же конкретной точке в каждом испытании:Watin Tests не работают на машине сборки TeamCity

System.UnauthorizedAccessException: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))

полный стек:

at mshtml.HTMLWindow2Class.IHTMLWindow2_execScript(String code, String language) 
    at WatiN.Core.Native.InternetExplorer.IEUtils.RunScript(String scriptCode, String language, IHTMLWindow2 window) 
    at WatiN.Core.Native.InternetExplorer.IEUtils.RunScript(String scriptCode, String language, IHTMLWindow2 window) 
    at WatiN.Core.Native.InternetExplorer.IEElement.GetJavaScriptElementReference() 
    at WatiN.Core.Native.InternetExplorer.IEFireEventHandler.CreateJavaScriptFireEventCode(NameValueCollection eventObjectProperties, String eventName) 
    at WatiN.Core.Native.InternetExplorer.IEFireEventHandler.FireEvent(String eventName, NameValueCollection eventProperties, Boolean noWait) 
    at WatiN.Core.Native.InternetExplorer.IEElement.FireEvent(String eventName, NameValueCollection eventProperties) 
    at WatiN.Core.Element.FireEvent(String eventName, Boolean waitForComplete, NameValueCollection eventProperties) 
    at WatiN.Core.Element.FireEvent(String eventName) 
    at WatiN.Core.Element.Focus() 

Я не совсем уверен, что происходит здесь. Учетная запись пользователя, на которой выполняются тесты, является администратором, и я установил сайты, используемые в качестве доверенных сайтов в настройках IE. Я почти уверен, что это настройка в TeamCity, которую я пропустил, поскольку они работают локально, но не на сервере сборки TeamCity.

Любая помощь будет оценена по достоинству.

EDIT: У нас есть три агента Team City работает несколько проектов с одним, как хозяин Это Вход на вкладке одного из сборки агентов, не хозяин:

enter image description here

Флажок «Разрешить обслуживание для взаимодействия с рабочим столом» отмечен галочкой, но Watins все еще не работают.

На хост-машине:

enter image description here

Однако Watins не работают на этой машине тоже. Watins также запускают IE как процесс, используя другую учетную запись пользователя. Таким образом, агент сборки работает под учетной записью пользователя «A» и в рамках тестов watin IE запускается под учетной записью пользователя «B».

Эта информация может быть более актуальной при поиске решения. Благодаря!

ответ

0

Скорее всего, вам необходимо настроить службу агента сборки для «Разрешить услугу взаимодействовать с рабочим столом».

+0

Как это сделать? – Ben

+0

перейдите к вашему менеджеру службы (start -> run -> services.msc) на машине, на которой запущен агент сборки. найдите службу «Team City Build Agent», откройте свойства. на вкладке «войти в систему» ​​отметьте «разрешить услугу взаимодействовать с рабочим столом», примените изменения. – kcamp

+0

«Разрешить службу для взаимодействия с рабочим столом» уже был проверен. Вы имеете в виду отменить это? – Ben

0

Один из MS обновляет несколько месяцев назад заблокировали доступ для запуска сценариев, следовательно, почему вы получаете:

System.UnauthorizedAccessException: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)) 

Проверьте этот чат here, что говорит об этом. Это одна из тех «исправлений», которые ломают вещи, которые работают в течение многих лет. Вы должны найти альтернативу использованию сценариев (не всегда возможно или точно так же, как при запуске скрипта).

+0

Спасибо за справочную информацию по этой проблеме, я понятия не имел, что это так. Я в конечном итоге изменил тестовые скрипты. Первоначально я использовал SendKeys.SendWait(); для заполнения текстовых полей и ввода вводов, но это вызвало проблемы. Я заменил это, установив значение текстового поля и вручную активировав метод javascript onChange. – Ben

+0

Я делал то же самое довольно долгое время из-за этой проблемы.Слишком плохо MS «исправил» это :) – ProgrammerV5

Смежные вопросы