在上上篇文章中我们的代码优化还没完成,此篇文章就是介绍优化点的第4条:base的优化
basepage的作用:
- 对selenium封装浏览器操作进行二次封装,让整个浏览器的操作变的更加容易使用(不用再编写那么长或难记的一些方法),直接让其他页面类如home_page,login_page继承BasePage即可
- 如果selenium升级或改版了,方法改变了,我们只需要维护BasePage类中的方法即可
basepage.py可以存放到common目录或pages目录中,我这里就放到了pages目录了
basepage.py代码如下:
from selenium.webdriver import Chrome, ActionChains
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as when
from setting import config
class BasePage:
host = config.host
# driver: Chrome的作用是使用driver.时会提示相关的方法
def __init__(self, browser: Chrome):
self.browser = browser
def goto(self, url):
"""去哪个url地址"""
if url.find('http://') != -1:
return self.browser.get(url)
return self.browser.get(self.host + url)
def fill(self, locator, words):
"""输入框内输入内容"""
el = self.browser.find_element(*locator)
el.send_keys(words)
def click(self, locator):
"""单击"""
wait = WebDriverWait(self.browser, timeout=10)