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

新乡专业做网站网站建设维护兼职

新乡专业做网站,网站建设维护兼职,柏乡县网站建设,windows网站建设教程视频本文是基于Pytest框架#xff0c;读取excel中的文件#xff0c;传入页面表单中#xff0c;并做相应的断言实现。 1、编辑媒体需求 首先明确一下需求#xff0c;我们需要对媒体的表单数据进行编辑#xff0c;步骤如下#xff1a; 具体表单如下图所示 1、登录 2、点击我…本文是基于Pytest框架读取excel中的文件传入页面表单中并做相应的断言实现。 1、编辑媒体需求 首先明确一下需求我们需要对媒体的表单数据进行编辑步骤如下 具体表单如下图所示 1、登录 2、点击我的媒体 3、点击媒体 4、点击编辑媒体 5、设置标题 6、设置媒体标题分类 7、设置标签001 8、设置产生日期 9、上传图片 10、描述 11、状态 12、启动评论 13、缩略图时刻 14、允许下载 然后点击Update Media后就会跳转到这个媒体的界面上。可以查看提交的配置是否生效。 2、编辑媒体V1.0 第一版先定位到元素并手工实现。 2.1 登录 2.1.1  conftest.py配置 首先在conftest.py做好公共方法的配置工作也就是登录退出等一些常用的方法。 conftest.配置特点 conftest.py配置脚本名称是固定的不能改名称 conftest.py与运行的用例要在同一个package下并且有————init__.py文件 测试用例文件不需要import conftest.py就能自动找到配置好的pytest.fixture import timeimport pytest from selenium import webdriverpytest.fixture(scopesession) def driver():driverwebdriver.Firefox()driver.maximize_window()driver.implicitly_wait(10)yield drivertime.sleep(10) # 如果需要观察程序运行过程那么加时间等待代码调试弯沉后去掉时间等待。# driver.quit()pytest.fixture(scopesession) def login(driver):driver.get(https://svr-6-9010.share.51env.net/accounts/login/)# 3、输入用户名driver.find_element_by_id(id_login).send_keys(changcheng1211)# 4、输入密码driver.find_element_by_id(id_password).send_keys(changcheng1211)driver.find_element_by_id(id_captcha_1).send_keys(changcheng1211)# 5、点击登录driver.find_element_by_class_name(primaryAction).submit()yield driver介绍一下 Pytest Fixture 作用 为每个测试用例完成一些公共的前置或者后置工作 限制范围 scopefunction每个方法调用一次 scopeclass每个类调用一次 scopemodule每一个.py文件调用一次 scopesession多个.py文件只调用一次 用法 import pytest 打开浏览器  def driver(): 登录功能   def login(): 2.1.12 pytest之全局配置文件pytest.ini [pytest] addopts -s -v testpaths test_cases/test_update_media.py -s表示输出调试信息用于显示测试函数中print()打印的信息 -v未加前只打印模块名加v后打印类名、模块名、方法名显示更详细的信息 -q表示只显示整体测试结果 -vs这两个参数可以一起使用 -n支持多线程或者分布式运行测试用例前提需安装pytest-xdist插件 –html生成html的测试报告前提需安装pytest-html插件 如pytest -vs --html ./reports/result.html testpaths 是指定执行的路径的。 2.2  编辑媒体test_update_media.py 首先在测试的目录下新建一个测试文件test_update_media.pyD:\python\autoFuncTest2\test_cases\test_update_media.py from selenium.webdriver.support.select import Selectclass TestUpDateMedia:def test_update_meida(self,login):# 1、登录# 2、点击我的媒体login.find_element_by_partial_link_text(我的媒体).click()# 3、点击媒体login.find_element_by_class_name(item-thumb).click()# 4、点击编辑媒体login.find_element_by_link_text(编辑媒体).click()# 5、设置标题login.find_element_by_id(id_title).clear()login.find_element_by_id(id_title).send_keys(小猴子.MP4)# 6、设置媒体标题分类id_category login.find_element_by_id(id_category)# 如果用ctrl键可以多选用click方法不能多选。# Selenium给我们提供了一种方法 select_by_visible_text(Film) 可以多选select_category Select(id_category)select_category.select_by_visible_text(Film)select_category.select_by_index(0) # Artselect_category.select_by_value(2) # Documentary# 7、设置标签001id_new_tags login.find_element_by_id(id_new_tags)id_new_tags.clear()id_new_tags.send_keys(001)# 8、设置产生日期id_add_date login.find_element_by_id(id_add_date)id_add_date.clear()id_add_date.send_keys(2000/06/04 20:49)# 9、上传图片login.find_element_by_id(id_uploaded_poster).send_keys(D:\\niupeng2.png)# 10、描述id_description login.find_element_by_id(id_description)id_description.clear()id_description.send_keys(今天我们去动物园参观了小猴子)# 11、状态id_state login.find_element_by_id(id_state)Select(id_state).select_by_visible_text(私有)# 12、启动评论login.find_element_by_id(id_enable_comments).click()# 13、缩略图时刻id_thumbnail_time login.find_element_by_id(id_thumbnail_time)id_thumbnail_time.clear()id_thumbnail_time.send_keys(50)# 14、允许下载login.find_element_by_id(id_allow_download).click()# 15、点击Update Medialogin.find_element_by_class_name(primaryAction).submit() 下面介绍一下代码的实现 from selenium.webdriver.support.select import Selectclass TestUpDateMedia:def test_update_meida(self,login): 首先导入一个Select的包因为里面有用到下拉框选择。 新建一个class TestUpDateMedia  的类。 def test_update_meida(self,login): 并在里面声明一个‘test_update_meida’的方法它继承自conftest.py的login的类。这里是直接调用登录功能。 # 2、点击我的媒体login.find_element_by_partial_link_text(我的媒体).click()# 3、点击媒体login.find_element_by_class_name(item-thumb).click()# 4、点击编辑媒体login.find_element_by_link_text(编辑媒体).click() 先点我的媒体点击媒体再点击编辑媒体 # 5、设置标题login.find_element_by_id(id_title).clear()login.find_element_by_id(id_title).send_keys(小猴子.MP4) 设置标题前应先清空输入框 # 6、设置媒体标题分类id_category login.find_element_by_id(id_category)# 如果用ctrl键可以多选用click方法不能多选。# Selenium给我们提供了一种方法 select_by_visible_text(Film) 可以多选select_category Select(id_category)select_category.select_by_visible_text(Film)select_category.select_by_index(0) # Artselect_category.select_by_value(2) # Documentary 设置媒体的标题分类 这里涉及到下拉框的操作 下拉框操作     假设有一个元素使select标签这时需要选择其中一个/多个选项     这时就不是click或者sendKeys这样的操作而是应该使用”选择“操作     代码实现步骤         1.首先定位下拉框             WebElement element driver.findElement(By...)         2.把定位到的元素转成下拉框类型             Select select new Select(element);         3、执行”选择“操作             select.deselectAll()                 清空选择             选择某个元素有三种方式                 select.select_by_visible_text(界面可见的文字)                 select.select_by_index(0) #选项的value属性                 select.select_by_value(2)  #第几个选项 # 7、设置标签001id_new_tags login.find_element_by_id(id_new_tags)id_new_tags.clear()id_new_tags.send_keys(001)# 8、设置产生日期id_add_date login.find_element_by_id(id_add_date)id_add_date.clear()id_add_date.send_keys(2000/06/04 20:49) 设置标签和产生日期。 # 9、上传图片login.find_element_by_id(id_uploaded_poster).send_keys(D:\\niupeng2.png)# 10、描述id_description login.find_element_by_id(id_description)id_description.clear()id_description.send_keys(今天我们去动物园参观了小猴子)# 11、状态id_state login.find_element_by_id(id_state)Select(id_state).select_by_visible_text(私有) 正常定位元素并发送值就可以。 # 12、启动评论login.find_element_by_id(id_enable_comments).click()# 13、缩略图时刻id_thumbnail_time login.find_element_by_id(id_thumbnail_time)id_thumbnail_time.clear()id_thumbnail_time.send_keys(50)# 14、允许下载login.find_element_by_id(id_allow_download).click()# 15、点击Update Medialogin.find_element_by_class_name(primaryAction).submit() 到这后第一版已经完成了。已经实现了基本的功能。 在命令行界面输入pytest,会显示执行完成。 3、编辑媒体V2.0 简要说明一下代码的结构。首先新建了一个叫autoFuncTest2的工程。里面按顺序resource下面有test_data.xlsx的测试数据文件。test_cases下面的conftest.py的配置文件和test_update_media2.py的测试用例文件utils里面有一个专门读取xlsx文件的excel_utils.py文件。最后是一个pytest.ini的全局配置文件。 执行顺序为首先命令行输入pytest会读取pytest.ini配置文件按照里面的路径执行测试test_cases下面的测试用例test_update_media2.py。test_update_media2.py再调用conftest.py进行登录登录完成后调用utils里面有一个专门读取xlsx文件的excel_utils.py文件读取resource下面有test_data.xlsx的测试数据文件进行操做。 3.1 pytest之全局配置文件pytest.ini 把代码的执行路径改了。因为我们要重新编写V2.0版本。我们要将待执行的命令指向要执行的文件。 [pytest] addopts -s -v testpaths test_cases/test_update_media2.py 3.2 测试数据文件test_data.xlsx 这个是要读取的excel文件 其中里面有一些参数是我们要读取的。 title, category, tag, date, image, description, state, enable_comments, thumbnail_time, allow_download,verify_state, verify_date, verify_enable_comments,verify_allow_download 3.3 test_update_media2.py 这个要从excel里面读取数据进行参数化。 import timeimport pytest from selenium.webdriver.support.select import Selectfrom utils import excel_utilsclass TestUpDateMedia:test_data excel_utils.read(__file__)pytest.mark.parametrize(title, category, tag, date, image, description, state, enable_comments, thumbnail_time, allow_download, verify_state, verify_date, verify_enable_comments, verify_allow_download, test_data)def test_update_media(self,login,title, category, tag, date, image, description,state, enable_comments, thumbnail_time, allow_download,verify_state, verify_date, verify_enable_comments,verify_allow_download):# 1、登录# 2、点击我的媒体if Media was edited! in login.page_source:login.find_element_by_xpath(//i[text()menu]).click()# 如果页面出现了Media was edited!那么需要先点击左上角的”i“标签三个横线的按钮login.find_element_by_partial_link_text(我的媒体).click()# except Exception as e:# login.find_element_by_xpath(//i[text()menu]).click()# 3、点击媒体login.find_element_by_class_name(item-thumb).click()# 4、点击编辑媒体login.find_element_by_link_text(编辑媒体).click()# 5、设置标题login.find_element_by_id(id_title).clear()login.find_element_by_id(id_title).send_keys(title)# 6、设置媒体标题分类id_category login.find_element_by_id(id_category)# 如果用ctrl键可以多选用click方法不能多选。# Selenium给我们提供了一种方法 select_by_visible_text(Film) 可以多选select_category Select(id_category)select_category.deselect_all()for c in category.split(,):select_category.select_by_visible_text(c)# select_category.select_by_index(0) # Art# select_category.select_by_value(2) # Documentary# Experimental,Music,TV# 7、设置标签001id_new_tags login.find_element_by_id(id_new_tags)id_new_tags.clear()id_new_tags.send_keys()# 8、设置产生日期id_add_date login.find_element_by_id(id_add_date)id_add_date.clear()id_add_date.send_keys(date)# 9、上传图片login.find_element_by_id(id_uploaded_poster).send_keys(image)# 10、描述id_description login.find_element_by_id(id_description)id_description.clear()id_description.send_keys(description)# 11、状态id_state login.find_element_by_id(id_state)Select(id_state).select_by_visible_text(state)# 12、启动评论id_enable_comments login.find_element_by_id(id_enable_comments)if enable_comments 启用评论 and id_enable_comments.is_selected():passelif enable_comments 不启用评论 and not id_enable_comments.is_selected():passelse:id_enable_comments.click()# 13、缩略图时刻id_thumbnail_time login.find_element_by_id(id_thumbnail_time)id_thumbnail_time.clear()id_thumbnail_time.send_keys(thumbnail_time)# 14、不允许下载 allow_download,id_allow_download login.find_element_by_id(id_allow_download)if allow_download 允许下载 and id_allow_download.is_selected():passelif allow_download 不允许下载 and not id_allow_download.is_selected():passelse:id_allow_download.click()# 15、点击Update Medialogin.find_element_by_class_name(primaryAction).submit()# 16.断言# 检查标题assert login.find_element_by_css_selector(.media-title-banner h1).text title# 检查分类for c in category.split(,):assert c in login.page_source# 检查标签assert tag in login.page_source# 检查日期assert verify_date in login.page_source# 检查描述assert description in login.page_source# 检查状态if state 公开:assert private not in login.page_sourceassert unlisted not in login.page_sourceelse:assert verify_state in login.page_source# 检查评论assert verify_enable_comments in login.page_source# 检查是否允许评论 form-textareaif Add a comment... verify_enable_comments:assert login.find_element_by_class_name(form-textarea).get_attribute(placeholder) Add a comment...else:assert verify_enable_comments in login.page_source# 检查是否允许下载if verify_allow_download 允许下载:# login.find_element_by_xpath(//span[text()下载])assert 下载 in login.page_sourceelse:assert 下载 not in login.page_source 下面解释一下 pytest.mark.parametrize(excel中的标题,test_data) 接下来将这些参数传进去。并将里面的响应参数替换成传进去的参数。 def test_update_media(self,login,title, category, tag, date, image, description,state, enable_comments, thumbnail_time, allow_download,verify_state, verify_date, verify_enable_comments,verify_allow_download): 有时隐式等待一些元素需要用一些条件触发可以用一些条件判断代替。 if Media was edited! in login.page_source:login.find_element_by_xpath(//i[text()menu]).click() 有时一个参数里面有多个值比如category里面有Experimental,Music,TV下拉框里面需要选多个值需要用for循环遍历并用逗号隔开他们。 # 6、设置媒体标题分类id_category login.find_element_by_id(id_category)# 如果用ctrl键可以多选用click方法不能多选。# Selenium给我们提供了一种方法 select_by_visible_text(Film) 可以多选select_category Select(id_category)select_category.deselect_all()for c in category.split(,):select_category.select_by_visible_text(c) 有时需要判断同时页面上是否勾选如果勾选并且excel中要求启用评论那么不操作反之就勾选。这里面涉及到一个多重判断。 # 12、启动评论id_enable_comments login.find_element_by_id(id_enable_comments)if enable_comments 启用评论 and id_enable_comments.is_selected():passelif enable_comments 不启用评论 and not id_enable_comments.is_selected():passelse:id_enable_comments.click()
http://www.w-s-a.com/news/383275/

相关文章:

  • 做空气开关那个网站推广比较好建站技术有哪些
  • 做网站前需要做什么准备wordpress图片云储存
  • 查楼盘剩余房源的网站地方网站推广
  • 农家乐网站建设方案创意平面设计公司简介
  • 信息化建设 网站作用网络营销的形式网站营销
  • 沈阳出名网站潍坊正规建设网站
  • 计算机软件开发需要学什么沈阳网站关键字优化
  • 关于军队建设网站国内最好的wordpress主题
  • 小视频网站如何建设陪诊app开发
  • 英文网站首页优化国外手机网站源码
  • 网站建设公司如何找客户网站建设应该考虑哪些问题
  • 创新的江苏网站建设wordpress用户绑定手机
  • 自己做网赌网站网站设计者
  • 教育培训网站设计辽宁招标工程信息网
  • 韶关网站推广做网站要哪些人员
  • 建设银行网站链接开发公司与物业公司交接清单
  • 网站定位广告企业建网站有这个必要吗
  • 网站模板 商标黄冈建设工程信息网
  • 做鞋子的招聘网站有哪些微网站
  • 项目网站开发建网站 多少钱
  • wordpress做门户seo培训价格
  • 百度关键词优化软件如何wordpress站点地图优化
  • 使用cnnic证书的网站营销公司有哪些
  • 做电子杂志用什么网站如何将网站生成二维码
  • 三点水网站建设洛阳市建设厅网站
  • 哪家做网站便宜网络推广培训吧
  • 网站怎么做支付非凡软件站
  • 北京谁会做网站开发熊岳网站怎么做
  • 南阳哪有做网站公司定制网站本地企业
  • 平板上做网站的软件邀约网站怎么做请柬