element

selenium Webdriver多窗口切换

回眸只為那壹抹淺笑 提交于 2021-02-12 02:03:37
应用场景: 在页面操作过程中有时候点击某个链接会弹出新的窗口,这时候就需要主机切换到新打开的窗口上进行操作。WebDriver提供了switch_to.window()方法,可以实现在不同的窗口直接切换。 以百度首页和百度注册页为例,在两个窗口直接的切换如图 代码如下: 1 # 导包 2 from selenium import webdriver 3 from time import sleep 4 # 定义浏览器句柄,打开百度网址 5 driver= webdriver.Chrome() 6 driver.implicitly_wait(10 ) 7 url= " http://www.baidu.com " 8 driver.get(url) 9 # 窗口最大化 10 driver.maximize_window() 11 # 获取百度搜索窗口的句柄 12 seach_windows= driver.current_window_handle 13 # 打印百度搜索窗口的句柄 14 print (seach_windows) 15 # 点击右上角"登录"按钮 16 driver.find_element_by_link_text( " 登录 " ).click() 17 # 在弹窗中点击"立即注册"按钮 18 driver.find_element_by_xpath( ' /

java队列Queue及阻塞队列

|▌冷眼眸甩不掉的悲伤 提交于 2021-02-12 02:02:03
java队列 接口 Queue类 在java.util包,定义了以下6个方法 详细查看官方文档 https://docs.oracle.com/javase/7/docs/api/java/util/Queue.html 什么是阻塞队列 BlockingQueue   队列是一种数据结构,它的特点是先进先出( First In First Out),它有两个基本操作:在队列尾部加入一个元素,从队列头部移除一个元素。队列在多线程应用中,常用于生产-消费场景。   BlockingQueue 是 Java util.concurrent 包下重要的数据结构,BlockingQueue 提供了线程安全的队列访问方式:当阻塞队列进行插入数据时,如果队列已满,线程将会阻塞等待直到队列非满;从阻塞队列取数据时,如果队列已空,线程将会阻塞等待直到队列非空。并发包下很多高级同步类的实现都是基于 BlockingQueue 实现的。   BlockingQueue 具有 4 组不同的方法用于插入、移除以及对队列中的元素进行检查。如果请求的操作不能得到立即执行的话,每个方法的表现也不同。这些方法如下:   按照上图,我们可以知道jdk1.5中的阻塞队列的操作:   add 增加一个元索 如果队列已满,则抛出一个IIIegaISlabEepeplian异常   remove 移除并返回队列头部的元素

关于vue+element-ui项目的分页,返回默认显示第一页的问题解决

落花浮王杯 提交于 2021-02-11 23:57:56
关于vue+element-ui项目的分页,返回默认显示第一页的问题解决 参考文章: (1)关于vue+element-ui项目的分页,返回默认显示第一页的问题解决 (2)https://www.cnblogs.com/bbqq1314/p/10653481.html 备忘一下。 来源: oschina 链接: https://my.oschina.net/u/4428122/blog/4952388

selenium xpath定位

馋奶兔 提交于 2021-02-11 18:48:25
id,  name,  class name,  tag name, link text,  partial link text,  xpath,  css selector 下面主要介绍一下xpath: 一、xpath基本定位用法   1.1 使用id定位 -- driver.find_element_by_xpath('//input[@id="kw"]')      1.2 使用class定位 -- driver.find_element_by_xpath('//input[@class="s_ipt"]')      1.3 当然 通过常用的8种方式结合xpath均可以定位(name、tag_name、link_text、partial_link_text)以上只列举了2种常用方式哦。 二、xpath相对路径/绝对路径定位   2.1 相对定位 -- 以// 开头 如://form//input[@name="phone"]      2.2 绝对定位 -- 以/ 开头,但是要从根目录开始,比较繁琐,一般不建议使用 如:/html/body/div/a    三、xpath文本、模糊、逻辑定位   3.1【文本定位】使用text()元素的text内容 如://button[text()="登录"]      3.2 【模糊定位】使用contains() 包含函数 如:/

selenium--Xpath定位

别等时光非礼了梦想. 提交于 2021-02-11 18:48:11
前戏 前面介绍过了七种定位方式,今天来介绍最后一种,也是最强大,本人最常用的定位方式xpath Xpath 即为 xml 路径语言,它是一种用来确定 xml 文档中某部分位置的语言。Xpath 基于 xml 的树状结构,提供在数据结构树中找寻节点的能力,html 也属于 xml 先来看一个简单的xpath定位 from selenium import webdriver from time import sleep driver = webdriver.Chrome() driver.get( ' http://www.baidu.com ' ) sleep( 3 ) driver.find_element_by_xpath( ' //*[@id="kw"] ' ).send_keys( ' selenium ' ) # //表示当前页面,@id="kw" 表示id为kw了 sleep(2 ) driver.find_element_by_xpath( ' //*[@id="su"] ' ).click() sleep( 2 ) driver.quit() 看起来是不是比较麻烦,为什么不通过id直接定位,因为在前端网页开发中,不是每个元素都有id属性的,或者id值是动态变化的。不能直接通过id定位,就要用到xpath定位了 被测网页HTML代码如下: XPath绝对路径定位

Selenium:WebDriverApi接口详解

感情迁移 提交于 2021-02-11 18:46:05
浏览器操作 # 刷新 driver.refresh() # 前进 driver.forward() # 后退 driver.back() Cookie操作 # 根据cookieKey,获取cookie信息 cookie = driver.get_cookie( ' cookieKey ' ) # 获取所有cookie信息 cookies = driver.get_cookies() # 添加cookie,严格按照格式添加,cookie的key为name,value为value driver.add_cookie({ ' name ' : ' tmp ' , ' value ' : ' 123123123 ' }) # 删除所有cookie信息 driver.delete_all_cookies() # 根据cookieKey删除对应cookie driver.delete_cookie( ' UiCode ' ) 窗口操作 # 获取当前浏览器的大小 driver.get_window_size() # 通过像素设置浏览器的大小 driver.set_window_size( ' width ' , ' height ' ) # 获取当前窗口针对于Windows的位置的坐标x,y driver.get_window_position() # 设置当前窗口针对Windows的位置,x

table表头固定

白昼怎懂夜的黑 提交于 2021-02-11 18:34:15
看了element-ui的table实现方法 https://element.eleme.cn/2.0/#/zh-CN/component/table 然后发现也是用了<colgroup> 精髓就是在这<colgroup>: <!-- <colgroup> <col style="width: 10%" /> </colgroup> 这个闭合标签<colgroup></colgroup>是什么意思呢? <colgroup></colgroup>这个标签的意思就是用来拼接表格的作用,也就是说第一个table和第二个table拼接在一起, 然而内部<col/>这个标签的作用是:这个标签用来表示我们thead内部的th/td数量, 也就是我们所说的列数,那么每一列的宽度尺寸我们就直接赋值给这个<col/>标签就可以了, 是不是很方便,加上这个标签就可以轻松实现固定表头,tbody做拉抽屉的效果了,另外我们thead内部有多少列, 我们就要在<colgroup></colgroup>内部写入的<col/>与thead内部的th/td数量相等 --> <colgroup> <col style="width: 10%" /> <col style="width: 10%" /> <col style="width: 10%" /> <col style="width: 15%" />

web自动化测试-D3-学习笔记之二(Selenium-WebDriverApi接口详解)

陌路散爱 提交于 2021-02-11 18:28:58
浏览器操作 1 2 3 4 5 6 7 8 # 刷新 driver . refresh ( ) # 前进 driver . forward ( ) # 后退 driver . back ( ) 获取标签元素 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 # 通过ID定位目标元素 driver . find_element_by_id ( 'i1' ) # 通过className定位目标元素 driver . find_element_by_class_name ( 'c1' ) # 通过name属性定位目标元素 driver . find_element_by_name ( 'n1' ) # 通过Xpath定位目标元素 driver . find_element_by_xpath ( '//*[@id="i1"]' ) # 通过css Selector定位目标元素 driver . find_element_by_css_selector ( '#i1' ) # 通过标签名称定位(注:在一个页面中,标签一定会重复,所以不用这个来进行定位) driver . find_element_by_tag_name ( 'input' ) # 通过标签中的文本查找元素 driver . find_element_by

web自动化测试-D3-学习笔记之一(Selenium彩蛋篇-Xpath使用方法)

这一生的挚爱 提交于 2021-02-11 18:02:39
由于最新版火狐不在支持FireBug等开发工具,可以通过 https://ftp.mozilla.org/pub/firefox/releases/ 下载49版本以下的火狐就可以增加Firebug等扩展了。 什么是Xpath? XPath是XML的路径语言,通俗一点讲就是通过元素的路径来查找到这个标签元素。 工具 Xpath的练习建议大家安装火狐浏览器后,下载插件,FireBug。 Xpath使用方法 注:默认死格式 先写 //* 代表定位页面下所有元素 1、Xpath支持ID、Class、Name定位功能 1 2 3 4 5 6 7 8 9 10 11 通过 ID定位 / / * [ @ id = 'kw' ] 通过 Class定位 / / * [ @ class = 'class_name' ] 通过 Name定位 / / * [ @ name = 'name' ] 2、如果标签没有ID、Class、Name三总属性,Xpath还支持属性定位功能 1 2 3 @ 代表以属性定位,后面可以接标签中任意属性 / / * [ @ other = 'attribute' ] 3、当标签的属性重复时,Xpath提供了通过标签来进行过滤 1 2 3 将 * 换位任意标签名,则可根据标签进行筛选 / / input [ @ placeholder = '用户名' ] 4、当标签页重复时

All Combinations of Elements with Exactly One Element from Each Group

别说谁变了你拦得住时间么 提交于 2021-02-11 16:53:11
问题 I am looking for a way to get all possible combinations consisting of exactly one element from each group. For my purposes, I do not care about the ordering of the elements. By that I mean {1,2} is the same as {2,1}. Suppose I had the following 4 groups: Group 1 = {e1, e2} Group 2 = {e3, e4} Group 3 = {e5, e6, e7} Group 4 = {e8} In this case, I think I would want (assuming that actually is all unique combinations) {e1, e3, e5, e8} {e1, e3, e6, e8} {e1, e3, e7, e8} {e1, e4, e5, e8} {e1, e4, e6