Исключение в примере калькулятора WinAppDriver

Я запускаю Win10 с включенным режимом разработчика и запустил WinAppDriver. В VS 2019 я запускал пример калькулятора, но все тесты терпят неудачу, за исключением. Затем я попытался установить несколько точек останова, но когда я запускаю тесты, они никогда не ломаются в моих точках останова.

Вот трассировка стека для исключения:

Test Name:  Addition
Test FullName:  Test Detail Summary
Test Source:    C:\Code\WinAppDriver-1.1.1\Samples\C#\CalculatorTest\ScenarioStandard.cs : line 31
Test Outcome:   Failed
Test Duration:  0:00:00

Test Name:  Addition
Test Outcome:   Failed
Result StackTrace:  
at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
   at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
   at OpenQA.Selenium.Appium.AppiumDriver`1.Execute(String driverCommandToExecute, Dictionary`2 parameters)
   at OpenQA.Selenium.Remote.RemoteWebElement.Click()
   at CalculatorTest.ScenarioStandard.Clear() in C:\Code\WinAppDriver-1.1.1\Samples\C#\CalculatorTest\ScenarioStandard.cs:line 131
Result Message: Initialization method CalculatorTest.ScenarioStandard.Clear threw exception. System.InvalidOperationException: An unknown error occurred in the remote end while processing the command..

Есть идеи, почему тесты не работают, и почему они не ломаются в моих точках останова?


person Jan Huus    schedule 09.09.2019    source источник
comment
Связана ли ваша проблема с этим?   -  person Señor CMasMas    schedule 09.09.2019
comment
Что касается точек останова, у меня возникла какая-то ошибка, из-за которой мне всегда приходилось очищать и перестраивать мое решение, прежде чем любые изменения кода будут улавливаться тестовым сценарием. Как будто VS компилировал старый код. Если у вас есть точки останова в этом коде, он не сработает.   -  person PixelPlex    schedule 10.09.2019
comment
Проблема отладки была моей ошибкой. Я новичок в Test Explorer, и я думал, что точки останова сработают, когда вы выберете Run Tests, но теперь я вижу, что вам нужно щелкнуть правой кнопкой мыши и выбрать Debug Tests.   -  person Jan Huus    schedule 18.09.2019


Ответы (1)


Строка 31 содержит метод проверки «Сложение».

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

session.FindElementByName("One").Click();

Попробуйте добавить вызов сна прямо перед вызовом метода щелчка.

System.Threading.Thread.Sleep(5000); 
person Naeem A. Malik    schedule 09.09.2019
comment
Пожалуйста, подумайте о более динамичном способе ожидания элементов. См. Мой ответ здесь. - person PixelPlex; 10.09.2019
comment
Спасибо всем за помощь. Я вижу, что основная проблема заключалась в ожидании. На данный момент я обошел это, увеличив значение, присвоенное session.Manage (). Timeouts (). ImplicitWait, но позже я могу рассмотреть более сложные решения. - person Jan Huus; 18.09.2019
comment
@PixelPlex: Вы убиваете муху из дробовика. Попробуйте вместо этого использовать класс WebDriverWait с методом until. - person Naeem A. Malik; 19.09.2019
comment
@ NaeemA.Malik, я понял вашу точку зрения. Я могу согласиться с вашим аргументом в пользу небольших проектов, которые необходимо выполнять быстро. В более крупных проектах имеет смысл реализовать более надежные способы решения этой проблемы. Кстати, если вы посмотрите второй фрагмент кода из моего связанного ответа, вы увидите, что я действительно использую «Пока» ;-). - person PixelPlex; 19.09.2019
comment
Да я согласен. Думаю, я сразу пропустил звонок «До». - person Naeem A. Malik; 20.09.2019
comment
Заключительная мысль, подождите, лучший друг разработчика тестов. - person Naeem A. Malik; 19.11.2019