当前位置: 首页 > news >正文

酒店机票最便宜的网站建设做网站如何防止被骗

酒店机票最便宜的网站建设,做网站如何防止被骗,查询网138网站域名,潍坊网站建设兼职本文为Python自动化测试框架基础入门篇#xff0c;主要帮助会写基本selenium测试代码又没有规划的同仁。本文应用到POM模型、selenium、unittest框架、configparser配置文件、smtplib邮件发送、HTMLTestRunner测试报告模块结合登录案例实现简单自动化测试框架项目主要包括以下…本文为Python自动化测试框架基础入门篇主要帮助会写基本selenium测试代码又没有规划的同仁。本文应用到POM模型、selenium、unittest框架、configparser配置文件、smtplib邮件发送、HTMLTestRunner测试报告模块结合登录案例实现简单自动化测试框架项目主要包括以下几个部分 conif.ini 放置配置文件例如 myunit.py文件放置的浏览器操作代码import unittestfrom selenium import webdriverclass MyTest(unittest.TestCase):def setUp(self):self.driver webdriver.Chrome()self.driver.implicitly_wait(10)self.driver.maximize_window()def tearDown(self):self.driver.quit()if __name____main__:unittest.main()base.py中放置浏览器对象操作代码from selenium.webdriver.supportimport expected_conditionsas ECfrom selenium.webdriver.support.waitimport WebDriverWaitimport os,configparserclass Page(object):path os.path.dirname(os.path.abspath(.))cfpath os.path.join(path,autoparkerconfigconf.ini)conf configparser.ConfigParser()conf.read(cfpath)urlconf.get(base,url)def __init__(self,driver,urlurl):self.driverdriverself.urlurldef open(self):self.driver.get(self.url)def find_element(self,*loc):#传入参数为元组需要加*本身就是元组的不需要*#print(*loc) try:WebDriverWait(self.driver,10).until(EC.visibility_of_element_located(loc))return self.driver.find_element(*loc)except:print(页面中未找到 %s 元素%(self,loc))def find_elements(self,*loc):return self.driver.find_elements(*loc)def send_keys(self,loc,value):self.find_element(*loc).send_keys(value)def click(self,loc):self.find_element(*loc).click()def clear(self,loc):self.find_element(*loc).clear()loginpage.py中放置通用登录模块代码尽量避免重复代码from selenium.webdriver.common.byimport Byfrom timeimport sleepfrom objpage.baseimport Pageclass login(Page):username_loc(By.NAME,accounts)password_loc(By.NAME,pwd)login_button_loc(By.XPATH,/html/body/div[5]/div/form/fieldset/p/button)login_error_loc(By.XPATH,//*[idcommon-prompt]/p)def login_username(self,username):self.find_element(*self.username_loc).clear()self.find_element(*self.username_loc).send_keys(username)def login_password(self,password):self.find_element(*self.password_loc).clear()self.find_element(*self.password_loc).send_keys(password)def login_button(self):self.find_element(*self.login_button_loc).click()#统一登录入口 def user_login(self,username,password):self.open()self.login_username(username)self.login_password(password)self.login_button()sleep(2)#登录提示信息 def login_error_text(self):return self.find_element(*self.login_error_loc).textparker.py中放置公共元素操作代码parker是我随便命名的不纠结from seleniumimport webdriverfrom selenium.webdriver.common.action_chainsimport ActionChainsfrom selenium.webdriver.support.selectimport Selectclass Parker(object):def __init__(self,browserchrome):if browserie or browserinternet explorer:driverwebdriver.Ie()elif browserfirefox or browserff:driverwebdriver.Firefox()elif browserchrome:driverwebdriver.Chrome()try:self.driverdriverexcept Exception:raise NameError(没有找到浏览器请输入ie,chrome,ff)def wait(self,secs5):#隐式等待 self.driver.implicitly_wait(secs)def to_element(self,key):#元素定位 if - not in key:#如果key里面不包含就执行下列语句 raise NameError(参数类型输入错误)bykey.split(-)[0]#通过分隔获取[0]对应的值 valkey.split(-)[1]#通过分隔获取[1]对应的值 if byid:elementself.driver.find_element_by_id(val)elif byname:elementself.driver.find_element_by_name(val)elif byclass:elementself.driver.find_element_by_class_name(val)elif bylink_text:elementself.driver.find_element_by_link_text(val)elif byxpath:elementself.driver.find_element_by_xpath(val)elif bycss:elementself.driver.find_element_by_css_selector(val)else:raise NameError(请输入正确的定位方式id,name,class,link_text,xpath,css)return elementdef open(self,url):#打开一个URL self.driver.get(url)def max_window(self):#最大化窗口浏览器 self.driver.maximize_window()def set_windows(self,wide,high):#设置窗口大小 self.driver.set_window_size(wide,high)def input(self,key,text):#对文本框进行输入 elself.to_element(key)el.send_keys(text)def click(self,key):#点击 elself.to_element(key)el.click()def clear(self,key):#清除文本框内容 elself.to_element(key)el.clear()def right_click(self,key):#右键操作 elself.to_element(key)ActionChains(self.driver).context_click(el).perform()def move_to_element(self,key):#鼠标悬停 elself.to_element(key)ActionChains(self.driver).move_to_element(el).perform()def drag_and_drop(self,el_key,ta_key):#拖拽 从一个元素拖到另外一个元素 elself.to_element(el_key)targetself.to_element(ta_key)ActionChains(self.driver).drag_and_drop(el,target).perform()def click_text(self,text):self.driver.find_element_by_partial_link_text(text).click()def close(self):#关闭当前浏览器窗口 self.driver.close()def quit(self):#退出浏览器 self.driver.quit()def submit(self,key):#提交事件 elself.to_element(key)el.submit()def F5(self):#刷新 self.driver.refresh()def js(self,script):#执行js self.driver.execute_script(script)def get_attribute(self,key,attribute):#获取元素属性 elself.to_element(key)return el.get_attribute(attribute)def get_text(self,key):#获取text elself.to_element(key)return el.textdef get_title(self):#获取title return self.driver.titledef get_url(self):#获取url return self.driver.current_urldef to_frame(self,key):#窗口切换 elself.to_element(key)self.driver.switch_to.frame(el)def alert_accept(self):#对话框确认操作 self.driver.switch_to.alert.accept()def alert_dismiss(self):#对话框取消操作 self.driver.switch_to.alert.dismiss()def img(self,fp):#截图 self.driver.get_screenshot_as_file(fp)def select_by_value(self,key,value):#下拉框操作 elself.to_element(key)Select(el).select_by_value(value)send_email.py放置邮件发送代码 import smtplibfrom email.mime.textimport MIMETextfrom email.mime.multipartimport MIMEMultipartimport configparserimport osdef sendEmail(file_path):pathos.path.dirname(os.path.abspath(.))cfpathos.path.join(path,autoparkerconfigconf.ini)conf configparser.ConfigParser()conf.read(cfpath)smtpserver conf.get(emailqq,smtpserver)sender conf.get(emailqq,sender)pwd conf.get(emailqq,pwd)receiver[]email_toconf.get(emailqq,receiver)email_arrayemail_to.split(;)for iin range(len(email_array)):receiver.append(email_array[i])print(receiver)with open(file_path,rb)as fp:mail_bobyfp.read()msgMIMEMultipart()msg[From]sendermsg[To],.join(receiver)msg[Subject]我曾把完整的镜子打碎 bodyMIMEText(mail_boby,html,utf-8)msg.attach(body)attMIMEText(mail_boby,html,utf-8)att[Content-Type]application/octet-stream att[Content-Disposition]attachment;filenametest_reuslt.html msg.attach(att)try:smtpsmtplib.SMTP()smtp.connect(smtpserver)smtp.login(sender,pwd)except:smtpsmtplib.SMTP_SSL(smtpserver,465)smtp.login(sender,pwd)smtp.sendmail(sender,receiver,msg.as_string())smtp.quit()sendEmail(D:report.html) 最后main.py文件放置的就是运行代码执行这个文件进行测试就可以import HTMLTestRunnerimport unittestfrom test_case.loginimport loginTestfrom public.send_emailimport sendEmailif __name____main__:testunitunittest.TestLoader().loadTestsFromTestCase(loginTest)suiteunittest.TestSuite(testunit)file_pathD:html_report.html fpopen(file_path,wb)runnerHTMLTestRunner.HTMLTestRunner(streamfp,title登录测试,description测试执行结果)runner.run(suite)fp.close()sendEmail(file_path)今天就先到这里一个入门级的自动化测试框架由于是非专业开发自学拿出来给大家分享编程代码可能有点不规范命名也很随意。大家先将就着看吧回头慢慢完善。还要多向大佬们学习。备注有想一起自学的朋友可以看配置文件代码一起交流。三人行必有我师焉
http://www.pierceye.com/news/435244/

相关文章:

  • 南宁网站推广费用0505网页制作与网站建设
  • 2345电视剧网站免费电子营业执照
  • 河北省沧州建设厅网站怎样保存网站资料 做证据
  • 网站同时做竞价和优化可以吗做网站游戏推广赚钱吗
  • 台州建站模板搭建上海远程教育网站设计与开发公司
  • 网站如何做淘客类似58同城分类信息网站开发
  • 网站源码文件安装教程苏州网站建设致宇
  • 免费注册域名网站知乎做网站做图电脑需要什么配置
  • 高埗做网站营销策略分析包括哪些内容
  • wordpress获取站点链接网站门户
  • flashxml网站模板网站后期培训机构全国排名
  • 企业网站设计网站页面设计中为什么要有优先级排列
  • 暗网是什么网站滨江区网站开发公司
  • 南京网站排名优化费用株洲58同城网站建设电话
  • 电子商务网站建设与管理理解上海网站推广企业
  • 设计师网站pintsetseo短视频网页入口引流免费
  • 个人如何注册微信公众号怎么创建网站优化的意义
  • 网站换空间要重新备案吗百度人工电话
  • 做网站要注意哪些问题网站用什么工具做
  • 在福州的网站制作公司滨海新网站建设
  • 帝国网站地图插件泰兴企业网站建设
  • wordpress布置网站教程用dw做简单图片网站
  • 网页制作模板左右结构百度seo关键词优化方案
  • 长沙设备建站按效果付费wordpress可视化编辑器插件
  • 软件开发与网站开发硬件开发语言
  • 开封做网站睿艺美官方网站建设的必要
  • 自适应网站制作简创网络南联网站建设
  • 帮别人做钓鱼网站犯法吗贵州网站建设工作室
  • 企业网站域名空间优化公司治理结构
  • 网站建设 前沿文章php做网站脑图