from public.driversetting import SeleniumDriver# 封装浏览器的各操作import osimport timefrom selenium.webdriver.support.wait import WebDriverWaitfrom selenium.webdriver.support.ui import Selectfrom selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.common.by import Byclass BrowserOperation():def __init__(self, url, driver):# 初始化浏览器self.url = urlself.driver = driverdef openUrl(self):# 打开网页print('正在打开{}页面'.format(self.url))try:self.driver.get(self.url)except Exception as e:print('打开{}页面失败'.format(self.url), e)def browserRefresh(self):# 刷新页面self.driver.refresh()def maxBrowser(self):# 浏览器最大化self.driver.maximize_window()def get_windows_img(self):# 保存图片file_path = os.path.dirname(os.path.abspath('.')) + '/images/'rq = time.strftime('%Y%m%d%H%M', time.localtime(time.time()))screen_name = file_path + rq + '.png'try:self.driver.get_screenshot_as_file(screen_name)except NameError as e: https://kopapilleronline.com/viagra-for-kvinnor-lovegra-100mg.htmlself.get_windows_img()def Input(self, type, value, inputvalue):# 输入内容方法if type == 'id' or type == 'name' or type == 'class' or type == 'tag' or type == 'link' or type == 'plink' or type == 'css' or type == 'xpath':try:if type == "xpath":self.driver.find_element_by_xpath(value).send_keys(inputvalue)elif type == "class_name":self.driver.find_element_by_class_name(value).send_keys(inputvalue)elif type == "id":self.driver.find_element_by_id("account").send_keys(inputvalue)elif type == "name":self.driver.find_element_by_name(value).send_keys(inputvalue)elif type == "link_text":self.driver.find_element_by_link_text(value).send_keys(inputvalue)elif type == "partial_link_text":self.driver.find_element_by_partial_link_text(value).send_keys(inputvalue)elif type == 'css':self.driver.find_element_by_css_selector(value).send_keys(inputvalue)except Exception as e:print('元素不存在')def Click(self, type, value):# 点击事件if type == 'id' or type == 'name' or type == 'class' or type == 'tag' or type == 'link' or type == 'plink' or type == 'css' or type == 'xpath':try:if type == "xpath":self.driver.find_element_by_xpath(value).click()elif type == "class_name":self.driver.find_element_by_class_name(value).click()elif type == "id":self.driver.find_element_by_id(value).click()elif type == "name":self.driver.find_element_by_name(value).click()elif type == "link_text":self.driver.find_element_by_link_text(value).click()elif type == "partial_link_text":self.driver.find_element_by_partial_link_text(value).click()elif type =='css':self.driver.find_element_by_css_selector(value).click()except Exception as e:print('元素不存在')def Clear(self, type, value):#清除内容if type == 'id' or type == 'name' or type == 'class' or type == 'tag' or type == 'link' or type == 'plink' or type == 'css' or type == 'xpath':try:if type == "xpath":self.driver.find_element_by_xpath(value).clear()elif type == "id":self.driver.find_element_by_id(value).clear()elif type == "name":self.driver.find_element_by_name(value).clear()elif type == "link_text":self.driver.find_element_by_link_text(value).clear()elif type == "partial_link_text":self.driver.find_element_by_partial_link_text(value).clear()elif type =='css':self.driver.find_element_by_css_selector(value).clear()except Exception as e:print('元素不存在')# 验证元素是否存在def Check_element(self, type, value):if type == 'id' or type == 'name' or type == 'class' or type == 'tag' or type == 'link' or type == 'plink' or type == 'css' or type == 'xpath':try:if type == "xpath":self.driver.find_element_by_xpath(value)elif type == "id":self.driver.find_element_by_id(value)elif type == "name":self.driver.find_element_by_name(value)elif type == "link_text":self.driver.find_element_by_link_text(value)elif type == "partial_link_text":self.driver.find_element_by_partial_link_text(value)except Exception as e:print('元素不存在')# 获取子元素def Select_child_elements(self, type, value1, value2):if type == "xpath":Select(self.driver.find_element_by_xpath(value1)).select_by_visible_text(value2)elif type == "id":Select(self.driver.find_element_by_id(value1)).select_by_visible_text(value2)elif type == "name":Select(self.driver.find_element_by_name(value1)).select_by_visible_text(value2)elif type == "link_text":Select(self.driver.find_element_by_link_text(value1)).select_by_visible_text(value2)elif type == "partial_link_text":Select(self.driver.find_element_by_partial_link_text(value1)).select_by_visible_text(value2)# 获取输入框的值def Get_attribute(self, type, value1, value2):if type == "xpath":Value = self.driver.find_element_by_xpath(value1).get_attribute(value2)return Valueelif type == "name":Value = self.driver.find_element_by_name(value1).get_attribute(value2)return Valueelif type == "link_text":Value = self.driver.find_element_by_link_text(value1).get_attribute(value2)return Valueelif type == "class_name":Value = self.driver.find_element_by_class_name(value1).get_attribute(value2)return Valueelif type == "id":Value = self.driver.find_element_by_id(value1).get_attribute(value2)return Value# 获取下拉框的文本的值def Get_text(self, type, value):if type == "xpath":text = self.driver.find_element_by_xpath(value).textreturn textelif type == "name":text = self.driver.find_element_by_name(value).textreturn textelif type == "link_text":text = self.driver.find_element_by_link_text(value).textreturn textelif type == "class_name":text = self.driver.find_element_by_class_name(value).textreturn textelif type == "id":text = self.driver.find_element_by_id(value).textreturn text# 显性等待时间def WebDriverWait(self, MaxTime, Mimtime, value):element = self.driver.find_element(By.ID, value)WebDriverWait(self.driver, MaxTime, Mimtime).until(EC.presence_of_element_located(element))# # 鼠标移动点击机制def Move_action(self, type, value):if type == "xpath":xm = self.driver.find_element_by_xpath(value)self.driver.ActionChains(self.driver).click(xm).perform()elif type == "id":xm = self.driver.find_element_by_id(value)self.driver.ActionChains(self.driver).click(xm).perform()elif type == "name":xm = self.driver.find_element_by_name(value)self.driver.ActionChains(self.driver).click(xm).perform()elif type == "link_text":xm = self.driver.find_element_by_link_text(value)self.driver.ActionChains(self.driver).click(xm).perform()# 校验按钮是否为选中状态def Is_selected(self, type, value):if type == "id":self.driver.find_element_by_id(value).is_selected()elif type == "xpath":self.driver.find_element_by_xpath(value).is_selected()elif type == "class_name":self.driver.find_element_by_class_name(value).is_selected()elif type == "name":self.driver.find_element_by_name(value).is_selected()elif type == "link_text":self.driver.find_element_by_link_text(value).is_selected()#!/usr/bin/python3# -*- coding: utf-8 -*-# @name : 彭升军# @TIME : 11:37 上午from logger.logger import Loggerimport timefrom public.Driver_Create import DriverCreatefrom configpa.configpa import *def shijiantime():date_time = time.strftime('%Y-%m-%d %H:%M:%S')return date_timedef fixed_time():time.sleep(3)return fixed_timedef open_browser():# 打开浏览器driver = DriverCreate.Driver_Creat('Browser_name')# driver.implicitly_wait(5)return driverdef open_browser_url():# 打开外卖通地址web = open_browser()web.get(getBrowser('Url'))Logger('打开浏览器').getlog().info('打开外卖通地址')fixed_time()clike_find_value(driver=web, type="xpath", value=getBrowser('find_mobile'))Logger('账号密码登录').getlog().info('账号密码登录')input_find_value(driver=web, type='id', value="account", inputvalue=getBrowser('username'))Logger('输入账号').getlog().info(getBrowser('username'))input_find_value(driver=web, type='id', value="password", inputvalue=getBrowser('pwd'))Logger('输入密码').getlog().info(getBrowser('pwd'))clike_find_value(driver=web, type="xpath", value=getBrowser('find_button'))Logger('点击登录').getlog().info(getBrowser('find_button'))fixed_time()assertE_assert_element(driver=web, type='xpath', value=getBrowser('assertions'))Logger('点击登录').getlog().info(getBrowser('assertions'))# 点击机构管理菜单clike_find_value(driver=web, type='xpath', value='//*[@id="root"]/section/aside/div/ul/li[7]/div/div/span')assertE_assert_element(driver=web, type='xpath', value='//*[@id="root"]/section/aside/div/ul/li[7]/div/div/span')fixed_time()assertE_assert_element(driver=web, type='xpath', value='//*[@id="scroll-area"]/div/div/div/div/div[3]/div[1]/div[2]/div[2]/div[2]/button')clike_find_value(driver=web, type='xpath', value='//*[@id="scroll-area"]/div/div/div/div/div[3]/div[1]/div[2]/div[2]/div[2]/button')fixed_time()web.close()web.quit()# 封装元素def clike_find_value(driver, type, value):if type == 'id' or type == 'name' or type == 'class' or type == 'tag' or type == 'link' or type == 'plink' or type == 'css' or type == 'xpath':try:if type == "xpath":driver.find_element_by_xpath(value).click()elif type == "class_name":driver.find_element_by_class_name(value).click()elif type == "id":driver.find_element_by_id(value).click()elif type == "name":driver.find_element_by_name(value).click()elif type == "link_text":driver.find_element_by_link_text(value).click()elif type == "partial_link_text":driver.find_element_by_partial_link_text(value).click()elif type == 'css':driver.find_element_by_css_selector(value).click()except Exception as e:print('元素不存在')def input_find_value(driver, type, value, inputvalue):# 输入内容方法if type == 'id' or type == 'name' or type == 'class' or type == 'tag' or type == 'link' or type == 'plink' or type == 'css' or type == 'xpath':try:if type == "xpath":driver.find_element_by_xpath(value).send_keys(inputvalue)Logger('输入内容').getlog().info(inputvalue)elif type == "class_name":driver.find_element_by_class_name(value).send_keys(inputvalue)Logger('输入内容').getlog().info(inputvalue)elif type == "id":driver.find_element_by_id(value).send_keys(inputvalue)Logger('输入内容').getlog().info(inputvalue)elif type == "name":driver.find_element_by_name(value).send_keys(inputvalue)Logger('输入内容').getlog().info(inputvalue)elif type == "link_text":driver.find_element_by_link_text(value).send_keys(inputvalue)Logger('输入内容').getlog().info(inputvalue)elif type == "partial_link_text":driver.find_element_by_partial_link_text(value).send_keys(inputvalue)Logger('输入内容').getlog().info(inputvalue)elif type == 'css':driver.find_element_by_css_selector(value).send_keys(inputvalue)Logger('输入内容').getlog().info(inputvalue)except Exception as e:print('元素不存在')# 断言函数def assertE_assert_element(driver, type, value):try:if type == "xpath":assert driver.find_element_by_xpath(value)Logger('断言').getlog().info(value)elif type == "class_name":assert driver.find_element_by_class_name(value)Logger('断言').getlog().info(value)elif type == "id":assert driver.find_element_by_id(value)Logger('断言').getlog().info(value)elif type == "name":assert driver.find_element_by_name(value)Logger('断言').getlog().info(value)elif type == "link_text":assert driver.find_element_by_link_text(value)Logger('断言').getlog().info(value)elif type == "partial_link_text":assert driver.find_element_by_partial_link_text(value)Logger('断言').getlog().info(value)elif type == 'css':assert driver.find_element_by_css_selector(value)Logger('断言').getlog().info(value)except Exception as e:print('元素不存在', e)def clear_find_value(driver, type, value):# 清除内容if type == 'id' or type == 'name' or type == 'class' or type == 'tag' or type == 'link' or type == 'plink' or type == 'css' or type == 'xpath':try:if type == "xpath":driver.find_element_by_xpath(value).clear()Logger('清除内容').getlog().info(value)elif type == "id":driver.find_element_by_id(value).clear()Logger('清除内容').getlog().info(value)elif type == "name":driver.find_element_by_name(value).clear()Logger('清除内容').getlog().info(value)elif type == "link_text":driver.find_element_by_link_text(value).clear()Logger('清除内容').getlog().info(value)elif type == "partial_link_text":driver.find_element_by_partial_link_text(value).clear()Logger('清除内容').getlog().info(value)elif type == 'css':driver.find_element_by_css_selector(value).clear()Logger('清除内容').getlog().info(value)except Exception as e:print('元素不存在')open_browser_url()