From 13af5663bd892c6f7a4e35b9761d12f135def81b Mon Sep 17 00:00:00 2001 From: yj <2077506045@qq.com> Date: 星期三, 24 七月 2024 18:25:19 +0800 Subject: [PATCH] 测评系统自动测试 --- base/base_page.py | 21 ++++++++++++++++----- 1 files changed, 16 insertions(+), 5 deletions(-) diff --git a/base/base_page.py b/base/base_page.py index 48f4473..1eaae78 100644 --- a/base/base_page.py +++ b/base/base_page.py @@ -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