Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Coockies, методы работы с ними



Software-Testing.Ru - портал тестировщиков  

Новые темы форума тестировщиков


Coockies, методы работы с ними
2016-02-10 09:51

Доброго времени  суток.

 

Так сложилось, что попал на проэкт веб сайта. В принцепе я уже достаточно много знаю о функциональном тестировании и селениуме.

 

Но вот незадача, я столкнулся  с куками. Проблема  в том что нормальной документации у Разрабов селениума на эту тему  нет(можете убедится http://seleniumhq.github.io/selenium/docs/api/java/index.html). А мне просто необходимо отслеживать куки так как ими передается стек ошибок как на  стороне сервера так и  клиента.

 

Пример: принажатии на кнопку получили ошибку, она сгенерилась на  странице в виде HTML-кода(к сожелению генерация происходит невсегда, а в куках стек ошибок хранится "намертво").

 

После возникновения ошибки, захожу в Инспектор и смотрю состояние куков после обработки события:

 

ASP.NET_SessionId:"cwrrswiud5lb0kafsot4kw0t"

ShowInfo:"1"

ShowLeftWorkplace:"1"

ShowRightWorkplace:"0"

_ym_uid:"1451717751998795105"

excType:"System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]"

message:"ÐиÑÑ+Ñкидок+по+лÑгоÑе+в+пÑивÑзке+лÑгоÑÑ+"sr"+не+должен+бÑÑÑ+пÑÑÑÑм"

stackTrace:"
Server+stack+trace:+
+++в+System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message+reply,+MessageFault+fault,+String+action,+MessageVersion+version,+FaultConverter+faultConverter)
+++в+System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime+operation,+ProxyRpc&+rpc)
+++в+System.ServiceModel.Channels.ServiceChannel.Call(String+action,+Boolean+oneway,+ProxyOperationRuntime+operation,+Object[]+ins,+Object[]+outs,+TimeSpan+timeout)
+++в+System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage+methodCall,+ProxyOperationRuntime+operation)
+++в+System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage+message)
 
Exception+rethrown+at+[0]:+
+++в+ServiceModel.Common.Channel.ChannelBase`1.Execute[T,TResult](Func`2+action)
+++в+ServiceModel.RemoteQuery.RemoteQueryChannel.ExecuteQuery(ExpressionContext+request)
+++в+ServiceModel.RemoteQuery.RemoteQueryProviderWithChannel.Execute(ExpressionContext+exp)
+++в+RemoteLinqProvider.RemoteQuery.RemoteQueryProvider.Execute(Expression+expression)
+++в+Web.Manager.DataModel.Storages.Benefits.Binding.Factory.BindingWizardFactory.InsertItem(BindingEditorItem+editItem)
+++в+Web.Manager.Content.Pages.Workplace.BusinessData.Benefits.Binding.Binding.BindingWizard.CommitItem()
+++в+Web.Manager.Content.Pages.Workplace.BusinessData.Benefits.Binding.Binding.BindingWizard.Wizard_Binding_FinishButtonClick(Object+sender,+WizardNavigationEventArgs+e)
+++в+System.Web.UI.WebControls.Wizard.OnFinishButtonClick(WizardNavigationEventArgs+e)
+++в+System.Web.UI.WebControls.Wizard.OnBubbleEvent(Object+source,+EventArgs+e)
+++в+System.Web.UI.Control.RaiseBubbleEvent(Object+source,+EventArgs+args)
+++в+System.Web.UI.Page.ProcessRequestMain(Boolean+includeStagesBeforeAsyncPoint,+Boolean+includeStagesAfterAsyncPoint)"

 

Главные для  меня  параметры это "excType " и "stackTrace ". Их и надо достать и записать в  журнал логов моих тестов.

 

Показать решение не прошу(хотя буду признателен за  такое), хотя бы укажите в какую сторону копать и  насколько это трудозатратно.

 

Забыл сказать что куки сформированы в ручную и  привязан  к  запросу  с  типом GET.

Тоесть  мне надо  отследить запрос узнать куки запроса и его ответа  браузеру, и вытянуть  из  куков интересующую информацию.



PAGE_LOAD_STRATEGY, "eager" - использование одного и того же э
2016-02-10 17:41

Всем привет!

 

Ситуация следующая: использую  capabilities.setCapability(CapabilityType.PAGE_LOAD_STRATEGY, "eager");

 

В одном классе у меня несколько тестов, идущих друг за другом, допустим a, b и с. На тестовом сайте имеется шапка, которая не меняется при переходе по страницам. 

 

тест a : кликнуть на заголовок в шапке "Заголвок1" и тд

тест b : кликнуть на заголовок в шапке "Заголвок2" и тд

тест c : кликнуть на заголовок в шапке "Заголвок3" и тд

 

В результате первый тест проходит а следующие нет. Точнее клик по заголовку происходит, но перехода нет. Получается ошибка: не найден элемент страницы, на которую переходим.

 

Как я понимаю, это происходит потому что селениум уже перед тестом заранее видит элементы шапки, и что-то не успевает сделать. (Если ставить перед кликом по шапке Thread.sleep(3000); - всё ок, ошибки нет).

 

А так, для ожидания элементов, я использую неявные ожидания. 

 public void waitForElementPresent( By element) { // ждать появления элемента  
 webDriver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS);
 WebDriverWait wait = new WebDriverWait(webDriver, 20);
 wait.until(ExpectedConditions.presenceOfElementLocated(element)); 
 webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); 
} 


 public void waitForElementVisible(  By element) { // ждать видимости элемента  
 webDriver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS);
 WebDriverWait wait = new WebDriverWait(webDriver, 20);
 wait.until(ExpectedConditions.visibilityOfElementLocated(element)); 
 webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); 
} 

Как избежать такой ситуации?

 



© 2010 | Software-Testing.Ru


В избранное