From 3b84cce1ee43215b9f398148fda19f4b1025856b Mon Sep 17 00:00:00 2001 From: yj <2077506045@qq.com> Date: 星期三, 24 七月 2024 17:46:00 +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