def setUp(self) -> None: logger.info('----------测试方法开始执行----------') self.driver = browser.get_driver() self.base_page = BasePage(self.driver) self.base_page.set_browser_max() self.base_page.time() self.base_page.open_url(self.url)
def setUp(self) -> None: self.base_page = BasePage(Browser().get_driver()) self.base_page.set_browser_max() self.base_page.implicitly_wait() self.base_page.open_url(local_config.url) self.test_data = TestDataUtils('main_suite', 'main_suite').get_test_data()
def set_driver(): driver = webdriver.Chrome(executable_path=config_utils.Config.chrome_path) base_page = BasePage(driver) driver.implicitly_wait(10) base_page.set_max_window() url = config_utils.Config.zantao_url base_page.open_url(url) return driver
def set_driver(): driver = webdriver.Chrome(executable_path=config_value.config.chrome_path) base_page = BasePage(driver) driver.implicitly_wait(10) base_page.set_browser_max() url = config_value.config.zantao_url base_page.open_url(url) return driver
def __init__(self, browser): self.base = BasePage(browser) self.login = login_page.LoginPage() self.select_course = select_course_page.OnlineCoursePage() self.check_out = check_out_page.CheckOutPage() self.lesson_content = lesson_content_page.LessonContentPage() self.quiz_content = quiz_page.QuizContentPage() self.lp_courses = lp_courses_page.LPCoursesPage() self.profile = profile_page.ProfilePage()
def setUp(self): ''' 测试用例的初始化 :return: ''' logger.info('--------测试方法初始化---------------') self.base_page = BasePage(Browser().get_driver()) self.base_page.set_browser_max() self.base_page.implicitly_wait() self.base_page.open_url(local_config.url)
def setUp(self) -> None: logger.log_info('===============开始执行测试用例=============') self.base_page = BasePage(GetBrower().get_brower_driver()) self.driver = self.base_page.driver self.base_page.implicity_wait() try: self.base_page.open_url(self.url) except Exception as e: logger.err_info('打开浏览器失败,浏览器地址为:%s,%s' % (self.url, e.__str__())) return self.driver
from selenium import webdriver from time import sleep from selenium.webdriver import ActionChains from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from common.base_page import BasePage frame_name1 = { 'element_name': 'tanchuang', 'locator_type': 'id', 'locator_value': 'kw', 'timeout': 3 } driver = webdriver.Chrome() bp = BasePage(driver) driver.get('http://www.baidu.com') driver.maximize_window() bp.find_element(frame_name1).send_keys('asdfasdf') bp.key_enter(frame_name1) bp.key_ctrl_a(frame_name1) bp.key_ctrl_c(frame_name1) sleep(2) bp.key_ctrl_v(frame_name1) sleep(2)
self.input(self.iterative_description,description) def switchto_default_content(self): # 切换到默认frame self.switch_to_default_content() def slide_element(self): # 滑到保存按钮 self.slide_specified_element(self.preservation) def click_preservation(self): # 点击保存按钮 self.click(self.preservation) def click_close_button(self): # 点击关闭按钮 self.click(self.close_button) if __name__ == '__main__': base_page = BasePage(Browser().get_driver()) base_page.open_url(local_config.url) login_action = LoginAction(base_page.driver) main_page = login_action.default_login() main_page.goto_project() createnewiterationpage = CreateNewIterationPage(base_page.driver) createnewiterationpage.click_create_iteration() createnewiterationpage.input_iteration_name('公共研发组sprint3') createnewiterationpage.input_iteration_code('sprint3') createnewiterationpage.clear_data_content() createnewiterationpage.input_start_date('2020-04-24') createnewiterationpage.click_start_date() createnewiterationpage.input_close_date('2020-05-20') createnewiterationpage.click_close_date() createnewiterationpage.input_team_name('公共研发组sprint3') createnewiterationpage.click_iteration_type()
#coding=gbk import os import time from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support.select import Select from common.base_page import BasePage curent_path=os.path.dirname(__file__) driver=webdriver.Chrome() page_path=os.path.join(curent_path,'./pages/element_samples.html') driver.implicitly_wait(10) driver.get('file://'+page_path) handle=driver.current_window_handle #获取当前窗口句柄 print(handle) handles=driver.window_handles #获取所有窗口句柄 print(handles) base_page=BasePage(driver) e=driver.find_element(By.XPATH,'//select[@name="jumpMenu"]') Select(e).select_by_visible_text("开封教育网") base_page.switch_window_by_title("开封市教育体育网") ##切换到这个句柄 # base_page.switch_window_by_url('http://jtj.kaifeng.gov.cn/') driver.find_element(By.XPATH,'//a[text()="政务服务"]').click()
def birthday_button(self,birthday_info): self.delete_element_attribute(self.birthday,'maxlength') self.input(self.birthday,birthday_info) BasePage(self.driver).press_enter_key(self.birthday) logger.info('点击[出生日期]元素')
def visit_date_input(self,data_info): self.delete_element_attribute(self.visit_date,'maxlength') self.input(self.visit_date,data_info) BasePage(self.driver).press_enter_key(self.visit_date) logger.info('输入访视日期:%s'%data_info)
def setUp(self) -> None: # 针对方法级别的 print('SeleniumBaseCase.setUp') self.base_page = BasePage(Browser().get_driver()) self.base_page.set_browser_max() self.base_page.implicitly_wait() self.base_page.open_url(self.url)
super().__init__(driver) self.username_input_box = elements['username_input_box'] self.password_input_box = elements['password_input_box'] self.login_button = elements['login_button'] def input_username(self, username): # 方法 == 》 控件的操作 self.input(self.username_input_box, username) def input_password(self, password): self.input(self.password_input_box, password) def click_login(self): self.click(self.login_button) def get_login_fail_alert(self): return self.switch_to_alert() if __name__ == '__main__': driver = browser.get_driver() driver.get(config.zantao_url) # # 测试用例一:登录成功 # login.test_login(config.zantao_url, config.user_name, config.password, driver) # driver.close() # # 测试用例二:登录失败 # driver = browser.get_driver() # login.test_login(config.zantao_url, config.user_name, (config.password + '1'), driver) # driver.close() BasePage(driver).screenshot_as_file()
def setUp(self): self.base_page = BasePage(Browser().get_driver()) self.base_page.set_maxwindow() self.base_page.implicitly_wait() self.base_page.open_url(self.url)
def setUp(self) -> None: self.base_page = BasePage(Browser().get_driver()) self.base_page.set_maxwindow() self.base_page.implicitly_wait() self.base_page.open_url(conf.get_chandao_path)
def setUp(self) -> None: self.base_page = BasePage(Config().driver) self.base_page.set_brower_max() self.base_page.implicitly_wait() self.base_page.open_url(Config().url)
#!/usr/bin/env python # encoding:utf-8 # @author:Rensh #@file:test.py #@time:2020/5/12 10:11 #@desc: from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from common.base_page import BasePage from common.config import Config driver = Config().driver test = BasePage(driver) test.open_url( 'C:/Users/AntMi/Desktop/python%E5%AD%A6%E4%B9%A0/Selenium/element_samples.html' ) alterbutton = { 'element_name': 'alterbutton', 'locator_type': 'xpath', 'locator_value': '//input[@name="alterbutton"]', 'timeout': 5 } promptbutton = { 'element_name': 'promptbutton', 'locator_type': 'xpath', 'locator_value': '//input[@name="promptbutton"]', 'timeout': 5 } # test.click(alterbutton) # test.switch_to_alert() test.click(promptbutton)
def setUp(self) -> None: logger.info('---------测试方法开始执行-----------') self.base_page = BasePage(Config().driver) self.base_page.set_brower_max() self.base_page.implicitly_wait() self.base_page.open_url(Config().url)
def setUp(self) -> None: logger.info('♥❤♥❤测试方法开始执行♥❤♥❤!') self.base_page = BasePage(Browser().get_driver()) self.base_page.set_driver()
class App(BasePage): res_yaml = BasePage().open_yaml('../common/app.yaml') def start(self, ip=res_yaml['ip'], udid=res_yaml['udid'][0], port=res_yaml['port'][0]): '''判断driver是否有值,有则加载报名,无则启动driver,返回对象本身''' if self.start_port(ip, port): try: capability_conf = {} capability_conf['platformName'] = self.res_yaml['platformName'] capability_conf['deviceName'] = self.res_yaml['deviceName'] capability_conf['appPackage'] = self.res_yaml['appPackage'] capability_conf['appActivity'] = self.res_yaml['appActivity'] capability_conf['noReset'] = self.res_yaml['noReset'] capability_conf['unicodeKeyboard'] = self.res_yaml[ 'unicodeKeyboard'] capability_conf['resetKeyboard'] = self.res_yaml[ 'resetKeyboard'] capability_conf['chromedriverExecutableDir'] = self.res_yaml[ 'chromedriverExecutableDir'] capability_conf['udid'] = udid capability_conf[ 'settings[waitForIdleTimeout]'] = self.res_yaml[ 'settings[waitForIdleTimeout]'] # capability_conf['dontStopAppOnself.reset'] = self.res['dontStopAppOnself.reset']#调试模式,quit会失效 self._driver = webdriver.Remote(f"http://{ip}:{port}/wd/hub", capability_conf) # self._driver = webdriver.Remote(f"http://localhost:{port}/wd/hub", capability_conf) print(f'当前连接的设备信息为:{capability_conf}') self._driver.implicitly_wait(10) except Exception as e: raise e else: self.stop_port(port) self.start(ip, udid, port) return self def stop(self): '''关闭APP''' self._driver.quit() return self def restart(self): '''重启APP''' self._driver.quit() self._driver.launch_app() return self def start_sync(self): '''多进程启动多个模拟器''' desired_process_list = [] for des in range(len(self.res_yaml['udid'])): port = 4723 + 2 * des desired = multiprocessing.Process(target=self.start, args=(self.res_yaml['ip'], self.res_yaml['udid'][des], port)) #target执行方法,args传参 desired_process_list.append(desired) for run in desired_process_list: run.start() for run in desired_process_list: run.join() return self def start_port_sync(self): '''后台启动两个appium服务端口''' desired_process_list = [] for i in range(len(self.res_yaml['udid'])): port = 4723 + 2 * i desired = multiprocessing.Process(target=self.start_port, args=(self.res_yaml['ip'], port)) # target执行方法,args传参 desired_process_list.append(desired) for run in desired_process_list: run.start() for run in desired_process_list: run.join() def start_port(self, host, port): '''后台创建appium服务,else未占用进行创建''' if self.check_port(host, port): return False else: bootstart_port = port + 1 cmd = 'start /b appium -a ' + host + ' -p ' + str( port) + ' -bp ' + str(bootstart_port) #/b是隐藏cmdUI界面后台运行 subprocess.Popen(cmd, shell=True, stdout=open('./appium_log' + str(port) + '.log', 'a'), stderr=subprocess.STDOUT) return True def stop_port(self, port): '''杀死监听的端口''' cmd_find = f'netstat -ano | findstr {port}' res = os.popen(cmd_find).read() if port and 'LISTENING' in res: i = res.index('LISTENING') start = i + len('LISTENING') + 7 end = res.index('\n') res = res[start:end] cmd_kill = f'taskkill /pid {res} -t -f' os.popen(cmd_kill) else: return False # res = subprocess.Popen(cmd_find,shell=True,stdin=subprocess.PIPE, stdout=subprocess.PIPE,stderr=subprocess.PIPE, encoding='utf-8') # res_text:str = res.communicate()[0]#拿到cmd查到的信息 # res_port = res_text.split('\n') # for i in res_port: # if str(port) and 'LISTENING' in i: # res = i.split()[-1].strip() # cmd_kill = f'taskkill /pid {res} -t -f' # subprocess.Popen(cmd_kill, shell=True, stderr=subprocess.STDOUT) # # print(f'杀死{res}进程成功。。。') # break # print('未找到进程。。。') def check_port(self, host, port): '''检查接口是否被占用,true被占用,连得上说明已经存在端口''' so = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: so.connect((host, port)) so.shutdown(2) #关闭连接 except OSError as msg: return False else: return True
def setUp(self) -> None: self.driver = browser.get_driver() self.base_page = BasePage(self.driver) self.base_page.set_browser_max() self.base_page.time() self.base_page.open_url(config.zantao_url)
def setUpClass(cls): print('==========测试类开始初始化================') cls.base_page = BasePage(Browser().get_driver()) cls.base_page.set_browser_max() cls.base_page.implicitly_wait() cls.base_page.open_url(local_config.url)
def setUp(self) -> None: logger.info('---------▓Р╩нийие┐ф╩╝о┤лл-----------') self.base_page = BasePage(set_driver()) self.base_page.set_browser_max() self.base_page.implicitly_wait() self.base_page.open_url(config.get_url)
def upload2(filepath): """ 上传文件第二种方法 :param filepath:上传文件路径 :return: """ time.sleep(1) shell = win32com.client.Dispatch("WScript.Shell") str = '{}{}\n'.format(filepath, '{ENTER}') shell.Sendkeys(str) time.sleep(1) dr = webdriver.Chrome() Base_Page = BasePage(dr) Base_Page.open_browser_no_login('http://125.69.82.54:16101/dsf5/index.html') dr.implicitly_wait(10) dr.find_element(By.XPATH,'//*[@id="app"]/div/div/div[1]/div/div[2]/div[1]/div[2]/div/div[2]/div/i').click() btn = (By.XPATH,'//*[@id="app"]/div/div/div[2]/div[1]/div/div/div[1]/ul/li[6]/div') Base_Page.element_click(btn) frame = dr.find_element(By.XPATH,'//*[@id="app"]/div/div/div[2]/div[2]/div/iframe') dr.switch_to.frame(frame) dr.switch_to.frame('iframe21') ele =(By.XPATH,'//div[text()="橙子教学班"]/ancestor::tr[@class="ds_control no_padding ds_container"]//div[text()="上传"]/parent::a') WebDriverWait(dr, 20, 0.5).until(EC.element_to_be_clickable(ele)) dr.find_element(*ele).click() time.sleep(1) a = r'C:\Users\Administrator\Desktop\1234.png' BasePage.upload(a) time.sleep(1)