TestBase.cs 844 B

123456789101112131415161718192021222324252627282930313233
  1. using OpenQA.Selenium;
  2. using System.Threading;
  3. namespace Avalonia.IntegrationTests.Appium;
  4. public class TestBase
  5. {
  6. protected TestBase(DefaultAppFixture fixture, string pageName)
  7. {
  8. Session = fixture.Session;
  9. var retry = 0;
  10. for (;;)
  11. {
  12. try
  13. {
  14. var pager = Session.FindElementByAccessibilityId("Pager");
  15. var page = pager.FindElementByName(pageName);
  16. page.Click();
  17. break;
  18. }
  19. catch (WebDriverException) when (retry++ < 3)
  20. {
  21. // MacOS sometimes seems to need a bit of time to get itself back in order after switching out
  22. // of fullscreen.
  23. Thread.Sleep(1000);
  24. }
  25. }
  26. }
  27. protected AppiumDriver Session { get; }
  28. }