element

selenium---Xpath定位方法

我与影子孤独终老i 提交于 2020-07-28 09:26:10
  看到标题,肯定知道,这一篇又是定位,因为我们做自动化测试,第一步就是定位元素,如果元素都定位不好,那么怎么实现代码点点点? Xpath XPath , 全称XML Path Language ,即XML 路径语言,它是一门在XML 文档中查找信息的语言。它最初是用来搜寻XML 文档的,但是它同样适用于HTML 文档的搜索。XPath的选择功能十分强大,它提供了非常简明的路径选择表达式,另外,它还提供了超过100个内建函数,用于字符串、数值、时间的匹配以及节点、序列的处理等,几乎所有我们想要定位的节点,都可以用XPath来选择。 Xpath常用属性 格式: # XPath定位方法 driver.find_element_by_xpath( ' //*[@属性=元素值] ' ) 表达式 描述 nodename 选取此节点的所有子节点 / 从当前节点选取直接子节点 // 从当前节点选取子孙节点 . 选取当前节点 .. 选取当前节点的父节点 @ 选取属性 * 通配符,选择所有元素节点与元素名 @* 选取所有属性 [@属性] 选取具有给定属性的所有元素 [@属性=‘value’] 选取给定属性具有给定值的所有元素 通用方法定位 这里安静还是以百度输入框为例子 1、通过id属性定位 # coding:utf-8 from selenium import webdriver driver =

Java并发编程(06):Lock机制下API用法详解

怎甘沉沦 提交于 2020-07-28 08:06:18
本文源码: GitHub·点这里 || GitEE·点这里 一、Lock体系结构 1、基础接口简介 Lock加锁相关结构中涉及两个使用广泛的基础API:ReentrantLock类和Condition接口,基本关系如下: Lock接口 Java并发编程中资源加锁的根接口之一,规定了资源锁使用的几个基础方法。 ReentrantLock类 实现Lock接口的可重入锁,即线程如果获得当前实例的锁,并进入任务方法,在线程没有释放锁的状态下,可以再次进入任务方法,特点:互斥排它性,即同一个时刻只有一个线程进入任务。 Condition接口 Condition接口描述可能会与锁有关联的条件变量,提供了更强大的功能,例如在线程的等待/通知机制上,Conditon可以实现多路通知和选择性通知。 2、使用案例 生产消费模式 写线程向容器中添加数据,读线程从容器获取数据,如果容器为空时,读线程等待。 public class LockAPI01 { private static Lock lock = new ReentrantLock() ; private static Condition condition1 = lock.newCondition() ; private static Condition condition2 = lock.newCondition() ; public

python_selenium自动化测试框架

孤街浪徒 提交于 2020-07-28 07:56:18
设计思路 本文整理归纳以往的工作中用到的东西,现汇总成基础测试框架提供分享。 框架采用python3 + selenium3 + PO + yaml + ddt + unittest等技术编写成基础测试框架,能适应日常测试工作需要。 1、使用Page Object模式将页面定位和业务操作分开,分离测试对象(元素对象)和测试脚本(用例脚本),一个页面建一个对象类,提高用例的可维护性; 2、使用yaml管理页面控件元素数据和测试用例数据。例如元素ID等发生变化时,不需要去修改测试代码,只需要在对应的页面元素yaml文件中修改即可; 3、分模块管理,互不影响,随时组装,即拿即用。 GitHub项目地址: https://github.com/yingoja/DemoUI 测试框架分层设计 把常见的操作和查找封装成基础类,不管是什么产品,可直接拿来复用 业务层主要是封装对象页面类,一个页面建一个类,业务层页面继承基础层 用例层针对产品页面功能进行构造摸拟执行测试 框架层提供基础组件,支撑整个流程执行及功能扩展,给用例层提供各页面的元素数据、用例测试数据,测试报告输出等 测试框架目录结构 如下思维导图目录结构介绍: 编写用例方法 1 testinfo: 2 - id: test_login001 3 title: 登录测试 4 info: 打开抽屉首页 5 testcase: 6 -

Leetcode:NO.378 有序矩阵中第K小的元素 二分法

ε祈祈猫儿з 提交于 2020-07-28 06:10:01
题目 给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。 请注意,它是排序后的第 k 小元素,而不是第 k 个不同的元素。 示例: matrix = [ [ 1 , 5 , 9 ] , [ 10 , 11 , 13 ] , [ 12 , 13 , 15 ] ] , k = 8 , 返回 13 。 提示: 你可以假设 k 的值永远是有效的, 1 ≤ k ≤ n2 。 链接:https://leetcode-cn.com/problems/kth-smallest-element-in-a-sorted-matrix 解题记录 通过数组的sort方法进行处理 通过将二维矩阵变成一维数组 然后排序后获取第k-1位即为所求 /** * @author ffzs * @describe * @date 2020/7/2 */ public class Solution { public int kthSmallest ( int [ ] [ ] matrix , int k ) { int [ ] res = new int [ matrix . length * matrix . length ] ; for ( int i = 0 ; i < matrix . length ; i ++ ) { for ( int j = 0 ; j <

如何在jQuery中选择具有多个类的元素?

拈花ヽ惹草 提交于 2020-07-28 04:28:38
问题: I want to select all the elements that have the two classes a and b . 我想选择具有两个类 a 和 b 所有元素。 <element class="a b"> So, only the elements that have both classes. 因此,只有具有 两个 类的元素。 When I use $(".a, .b") it gives me the union, but I want the intersection. 当我使用 $(".a, .b") 它会给我联合,但是我想要交点。 解决方案: 参考一: https://stackoom.com/question/4Mts/如何在jQuery中选择具有多个类的元素 参考二: https://oldbug.net/q/4Mts/How-can-I-select-an-element-with-multiple-classes-in-jQuery 来源: oschina 链接: https://my.oschina.net/stackoom/blog/4298966

如何在不使用库的情况下在JavaScript中的另一个元素之后插入元素?

烈酒焚心 提交于 2020-07-28 03:55:29
问题: 在JavaScript中有 insertBefore() ,但是如何 在 不使用jQuery或其他库的情况下 在 另一个元素 之后 插入元素? 解决方案: 参考一: https://stackoom.com/question/K72C/如何在不使用库的情况下在JavaScript中的另一个元素之后插入元素 参考二: https://oldbug.net/q/K72C/How-to-insert-an-element-after-another-element-in-JavaScript-without-using-a-library 来源: oschina 链接: https://my.oschina.net/u/4432649/blog/4355262

VUE的学习汇总

落花浮王杯 提交于 2020-07-28 02:55:28
VUE的学习汇总 VUE 的特点: 不用操作DOM 单页面应用WEB(asp) 数据驱动视图,只关注数据; MVVM双向数据绑定; 组件化,复用代码; VUE的安装: 1.直接通过路径引入,地址:https://vuejs.org/js/vue.min.js; 2.直接下载在本地引入 3.采用npm安装的方式,命名:npm install vue vue.js不支持IE8及其以下版本; VUE的使用: once ,prevent,stop <div id="app"> {{string}} <button v-on:click="clicme">once</button> <button @click="clicme">once</button> <button @click.once="clicmeonce">once</button> //只触发一次 <a href="http://www.baidu.com" @click.prevent="stopjum">//阻止默认事件触发 <div @click="alert(1)"> <div @click.stop="alert(2)"></div> //阻止冒泡事件,只重复2,不触发1 </div> <input type="text" v-bind:value="string" @input="inputChange(

如何用vue-Element-ui实现左侧无限级菜单?本文详细教你

萝らか妹 提交于 2020-07-28 02:10:59
#最近项目中,要用到element-ui的无限级分类菜单,根据角色生成不同的递归数据,查阅了网上很多资料,发现很多都不太完整并且没有很多的延伸性。 ###梳理递归数据 我们一般拿到后台的数据是:1.扁平化数据格式 2.递归式数据格式 复制代码 let arr = [ { name:小七, id:1 }, { name:小八, id:2 }, { name: 小九, id:3 } ] 我们从后台拿到的是这种扁平化处理数据,那我们实现递归菜单的话需要什么数据格式呢,需要格式如下: let menuItems = [ { name:小七, id:1, children:[ { name: '啥也不是', pid:2 } ] }, { name:小八, id:2, children:[ { name: '随便写哦', pid:3, children:[ { name: '再次深入', pid: 4, children:[ { name: '撒打算', pid:666 } ] } ] } ] }, { name: 小九, id:3 我是08年出道的前端老鸟,有问题或者交流经验可以进我的扣扣裙 519293536 我都会尽力帮大家 ] 我们就需要类似于以上的这种数据格式: 扁平化数据转换递归数据,下面贴出我的数据处理方法: 注:应为在网上看到的许多的递归处理方法都不一样

JSON字符串中的二进制数据。 比Base64更好的东西

眉间皱痕 提交于 2020-07-27 22:42:38
问题: The JSON format natively doesn't support binary data. JSON格式 本身不支持二进制数据。 The binary data has to be escaped so that it can be placed into a string element (ie zero or more Unicode chars in double quotes using backslash escapes) in JSON. 必须对二进制数据进行转义,以便可以将其放入JSON中的字符串元素(即使用反斜杠转义的双引号中的零个或多个Unicode字符)。 An obvious method to escape binary data is to use Base64. 逃脱二进制数据的一种明显方法是使用Base64。 However, Base64 has a high processing overhead. 但是,Base64具有较高的处理开销。 Also it expands 3 bytes into 4 characters which leads to an increased data size by around 33%. 它还将3个字节扩展为4个字符,这导致数据大小增加了约33%。 One use case for

开发一个大型后台管理系统,应该用前后端分离的技术方案吗?

徘徊边缘 提交于 2020-07-27 21:58:59
话说这天,我们团队开会讨论了一个问题,不,与其说“讨论”,不如说“争吵”更合适。 背景是这样的: 我们要开发一个 xxx 后台管理系统,这个系统业务复杂、功能又多,大家的争吵集中在“这个系统是否应该用前后端分离的方案”。 这次争吵的问题比较典型,于是我就写了这篇文章。为了大家好理解,把“xxx 后台管理系统”泛化一下,变成: 开发一个大型后台管理系统,应该用前后端分离的技术方案吗? 先说一下,本文中的观点肯定有人不认同,再加上我对前端技术掌握有限,所以大家批判的看吧。 1. 先审题,冷静的分析一下 前后端分离的优点多多,这不需要多说,大家人人都清楚。 来,讨论之前,我们先一起好好审审题。 结合“ 开发一个大型后台管理系统 ”这个约束条件,冷静的分析一下: • 什么是后台管理系统:首先后台管理系统这个称呼,意味着这是一个 B 端系统 。可以小到部门级应用(客户投诉登记系统、办公设备台账系统),大一点可以是大集团级核心系统(500 强保险公司客服、呼叫中心),可以是 ERP、CRM、OA(SAP、用友、泛微协同),可以是一个 B2C 电商的商城后台、支付网关管理控制台,可以是 Saas 的管理后台(Salesforce、Teambition、Jira),可以大到阿里云控制台…… • 什么是大型:我理解大型系统是指功能模块多、交互复杂,而不是访问量、TPS、数据量大。所以 CMS、OA