将Selenium的主要操作封装成class,方便后续调用。
import os, time, faker, random
from typing import Tuple, Union, Dict
from selenium.webdriver import Chrome
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as when, expected_conditions
from selenium.webdriver import ActionChains, Keys
class Page:
def __init__(self, driver: Chrome):
self.driver = driver
def goto(self, url):
""" 去哪个url地址 """
# if url.find("https://") != -1:
# return self.browser.get(url)
return self.driver.get(url)
def input(self, locator, values):
""" 输入框当中输入内容 """
el = self.driver.find_element(*locator)
el.send_keys(values)
def clear(self, element):
""" 清空输入框中的内容 """
el = self.driver.find_element(*element)
el.clear()
def click(self, locator):
""" 点击 """
# 设置显性等待时间
wait = WebDriverWait(self.driver, timeout=8)
# 等待某个元素出现并可点击
condition = when.element_to_be_clickable(locator)
# 定位元素.点击按钮
element = wait.until(condition)
# 点击元素
ActionChains(self.driver).click(element).perform()
def double_click(self, locator):
""" 双击 """
# 设置显性等待时间
wait = WebDriverWait(self.driver, timeout=10)
# 等待某个元素出现并可点击
condition = when.element_to_be_clickable(locator)
# 定位元素.点击按钮
element =