| | |
| | | return element.find_element(*locator) |
| | | |
| | | # 在指定元素中定位多个元素 |
| | | def get_elements_in(self, element, *locator): |
| | | def get_elements_in(self, element, locator): |
| | | return element.find_elements(*locator) |
| | | |
| | | # 元素定位 |
| | |
| | | |
| | | # 滑动页面 |
| | | 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): |