Explorar o código

feat: 😀优化自动化测试基类

喵你个旺呀 hai 1 ano
pai
achega
7477923cc5
Modificáronse 1 ficheiros con 14 adicións e 4 borrados
  1. 14 4
      Admin.NET/Admin.NET.Test/BaseTest.cs

+ 14 - 4
Admin.NET/Admin.NET.Test/BaseTest.cs

@@ -6,6 +6,7 @@
 
 using OpenQA.Selenium;
 using OpenQA.Selenium.Edge;
+using OpenQA.Selenium.Support.UI;
 
 namespace Admin.NET.Test;
 
@@ -25,6 +26,16 @@ public class BaseTest : IDisposable
         Driver.Navigate().GoToUrl(url);
     }
 
+    /// <summary>
+    /// 等待网页加载完成
+    /// </summary>
+    protected async Task WaitExecutorCompleteAsync()
+    {
+        var wait = new WebDriverWait(Driver, TimeSpan.FromSeconds(30));
+        wait.Until(driver => ((IJavaScriptExecutor)driver).ExecuteScript("return document.readyState").Equals("complete"));
+        await Task.Delay(1000);
+    }
+
     /// <summary>
     /// 用户登录
     /// </summary>
@@ -32,9 +43,7 @@ public class BaseTest : IDisposable
     /// <param name="password"></param>
     protected async Task Login(string account = "superadmin", string password = "123456")
     {
-        await Driver.Navigate().RefreshAsync();
-        await Task.Delay(6000);
-
+        await GoToUrlAsync("/#/login");
         var inputList = Driver.FindElements(By.CssSelector("#pane-account input"));
 
         // 输入用户名
@@ -61,10 +70,11 @@ public class BaseTest : IDisposable
     /// 打开指定页面
     /// </summary>
     /// <param name="url"></param>
-    protected async Task GoToUrl(string url)
+    protected async Task GoToUrlAsync(string url)
     {
         if (url.StartsWith("http")) await Driver.Navigate().GoToUrlAsync(url);
         else await Driver.Navigate().GoToUrlAsync(_baseUrl + "/" + url.TrimStart('/'));
+        await WaitExecutorCompleteAsync();
     }
 
     /// <summary>