From c0dc1bc9676d0bc15355cfd16e9bb92a31518aa8 Mon Sep 17 00:00:00 2001
From: yj <2077506045@qq.com>
Date: 星期四, 25 七月 2024 11:50:11 +0800
Subject: [PATCH] 测评系统自动测试

---
 base/base_page.py |   23 +++++++++++++++++------
 1 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/base/base_page.py b/base/base_page.py
index aba837a..1eaae78 100644
--- a/base/base_page.py
+++ b/base/base_page.py
@@ -1,7 +1,7 @@
 import importlib
 import time
 
-from selenium.common import StaleElementReferenceException, ElementClickInterceptedException
+from selenium.common.exceptions import StaleElementReferenceException, ElementClickInterceptedException
 from selenium.webdriver.remote.webelement import WebElement
 from selenium.webdriver.support.wait import WebDriverWait
 from selenium.webdriver.support import expected_conditions as EC
@@ -279,7 +279,7 @@
         return element.find_element(*locator)
 
     # 鍦ㄦ寚瀹氬厓绱犱腑瀹氫綅澶氫釜鍏冪礌
-    def get_elements_in(self, element, *locator):
+    def get_elements_in(self, element, locator):
         return element.find_elements(*locator)
 
     # 鍏冪礌瀹氫綅
@@ -397,15 +397,26 @@
 
     # 婊戝姩椤甸潰
     def scroll_by(self, num):
-        self.driver.execute_script("window.scrollBy(0, " + num + ");")
+        self.driver.execute_script(f"window.scrollBy(0, {num})")
+
+    def scroll_to_top(self):
+        self.driver.execute_script("window.scrollTo(0, 0);")
 
     # 婊戝姩鍒板簳閮�
     def scroll_to_bottom(self):
         self.driver.execute_script("window.scrollBy(0,document.body.scrollHeight);")
 
-    # 婊戝姩鍒伴《閮�
-    def scroll_to_top(self):
-        self.driver.execute_script("window.scrollBy(0,0);")
+    # 婊氬姩鍒板搴斿厓绱犱笂
+    def scroll_to_element(self, ele, timeout=None):
+        # 鑾峰彇鍏冪礌鐨勫潗鏍�
+        element_top = self.driver.execute_script("return arguments[0].getBoundingClientRect().top;", ele)
+        # 鑾峰彇瑙嗗彛鐨勯珮搴�
+        viewport_height = self.driver.execute_script("return window.innerHeight;")
+        # 璁$畻婊氬姩璺濈
+        scroll_distance = element_top + viewport_height - ele.size['height']
+        # 鎵ц婊氬姩鎿嶄綔
+        self.driver.execute_script(f"window.scrollTo(0, {scroll_distance});")
+        WebDriverWait(self.driver, 10).until(EC.visibility_of(ele))
 
     # 鎴彇褰撳墠绐楀彛淇濆瓨涓哄浘鐗�
     def get_png(self):

--
Gitblit v1.9.1