一.窗口基本操作 1. 关于窗口的设置都是由window对象提供的: 获取window的对象方法: driver.manage().window(); //1.获取 window 对象 Window window = driver.manage().window();//2.窗口最大化 window.maximize(); //3.获取窗口大小 Dimension dimension =window.getSize(); System.out.println("窗口的宽:"+dimen…
定位元素方法 官网地址:http://selenium-python.readthedocs.org/locating-elements.html        这里有各种策略用于定位网页中的元素(locate elements),你可以选择最适合的方案,Selenium提供了一下方法来定义一个页面中的元素: find_element_by_id find_element_by_name find_element_by_xpath find_element_by_link_text find_e…
层级与属性结合定位 如果被定为的元素,无法通过自身属性来唯一标识自己,此时可以考虑借助上级元素来定位自己.举生活中的例子,一个婴儿刚出生,还没有姓名与身份证号,此时给婴儿进行检查时往往会标注为"某某之女".因为婴儿的母亲是确定的,找到母亲也就找到了婴儿.XPath的层级与属性结合定位就是如此. 假设bing页面的搜索框与搜索按钮元素,无法通过自身属性来定位.则可以借助其上一级(父对象)元素来定位,前端代码如图所示. 搜索框元素的上一级是1个div标签,该div标签的clalss属性等于…
CSS 指层叠样式表 (CascadingStyleSheets),CSS一种用来表现HTML或XML等文件样式的计算机语言,其能够灵活的为页面提供丰富样式的风格. CSS使用选择器为页面元素绑定属性(如ID.class等),这些选择器可以被Selenium使用来进行定位元素.CSS较为灵活的选择控件的任意属性,CSS定位元素的速度比xpath速度快. CSS定位是通过find_element_by_css_selector方法. 仍然以bing搜索页为例介绍CSS定位的用法. 要操作Bing搜…
#打开网页前三步 from selenium import webdriver driver=webidriver.Chrome() driver.get("https://www.baidu.com")   #设置休眠时间 import time time.sleep(2)   #刷新页面 driver.refresh()   #页面切换 driver.back()#返回上一页 driver.forward()#切换到下一页   #设置窗口大小 driver.set_window_s…
如果把页面上的元素看作人的话,在现实世界如何找到某人呢?方法有三: 一.通过人本身的属性,例如他的姓名,手机号,身份证号,性别,这些可区别他人的属性.在web页面上的元素也有这些属性,例如,id.name.class name.tag name等. 二.在找查某人的时候可以通过位置属性,例如,x国.x市.x路.x号.Xpath和CSS就提供了这种以标签名为层级关系的定位方式. 三.可以借助相关他人的属性来找到某人,例如,我没有小明的联系方式,但我有他爸爸的手机号,那么通过他爸爸手机号也可以找到小…
三.WebDriver定位元素 推荐使用的webdriver是firefox,因为他的firebug更能可以帮助定位页面元素使用 # create a new Firefox session cls.driver = webdriver.Firefox() 1.通过id定位 可以通过find_element_by_id()方法来定位元素 #通过id定位 self.driver.find_element_by_id("hl").click() self.driver.find_eleme…
如果把页面上的元素看作人的话,在现实世界如何找到某人呢?方法有三: 一.通过人本身的属性,例如他的姓名,手机号,身份证号,性别,这些可区别他人的属性.在web页面上的元素也有这些属性,例如,id.name.class name.tag name等. 二.在找查某人的时候可以通过位置属性,例如,x国.x市.x路.x号.Xpath和CSS就提供了这种以标签名为层级关系的定位方式. 三.可以借助相关他人的属性来找到某人,例如,我没有小明的联系方式,但我有他爸爸的手机号,那么通过他爸爸手机号也可以找到小…
1.通过id定位元素 写法1: element = driver.find_element_by_id("kw") 写法2: from selenium.webdriver.common.by import By element = driver.find_element(by=By.ID, value="kw") Tips: by=By.ID表示以id的方式定位web元素,下面的例子有类似的写法以此类推   2.通过class定位元素 写法1: cheeses =…
1.driver.find_element_by_id('su') 定位到元素的id一般id是唯一的,可以精确定位到元素 2.driver.find_element_by_name() 通过元素的name来定位元素 3.driver.find_element_by_class_name() 通过元素的class属性来定位 4.driver.find_element_by_link_text() 通过链接的文本来定位元素 5.driver.find_element_by_partial_link_…
根据ID名称相同,定位第3个的手写方法 解决方案写法如下: //*[@id="weekDays" and @data-num="3"]…
前一篇文章介绍了如何通过元素的id值来定位web元素,本文介绍如何通过tag name来定位元素.个人认为,通过tag name来定位还是有很大缺陷,定位不够精确.主要是tag name有很多重复的,造成了选择tag name来定位页面元素不准确,所以使用这个方法定位web元素的机会很少. 什么是tag name? 还是以百度首页搜索输入框,在火狐浏览器,右键,通过firepath,检查元素,看下图: 上面图片中红色圈选区域的标签名称都是tag name:实际上我们目标元素是输入框,应该是inp…
学习java窗口基本操作时无聊写的 就当记录 代码如下: package day08; import java.awt.BorderLayout;import java.awt.Color;import java.awt.FlowLayout;import java.awt.Font;import java.awt.GridLayout; import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;…
Java+Selenium3方法篇24-单选和多选按钮操作 本篇介绍 webdriver处理前端单选按钮的操作.单选按钮一般叫raido button,就像我们在电子版的单选答题过程一样,单选只能点击一次,如果点击其他的单选,之前单选被选中状态就会变成未选中.单选按钮的点击,一样是 使用click方法.下面我们介绍百度新闻首页中有两个单选按钮,我们根据for选好,依次点击第一个,然后点击第二个,由于第一个是默认选中状态,所以 看不到第一个点击的效果. 相关脚本代码如下. package less…
package com.swift; import java.awt.Color; import java.awt.GridLayout; import java.util.Random; import javax.swing.JFrame; import javax.swing.JPanel; public class RP_Frame extends JFrame { private static final long serialVersionUID = 1L; public RP_Fra…
1.前言 我大概是在2012年第一次正式接触到自动化测试,那个时候跟随我的团队一起,就当时项目的UI自动化尝试做出了探索. 在我离开那家公司的时候,我们的自动化测试体系仍然难言完美,但是也已经达到了非常高效的程度.我们的测试部门从业务向的纯手工测试团队,也转型为了自动化:手动=2:1的队伍结构. 时至今日,自动化测试的火热程度比起当年又要上升了几个层级,对于测试工程师而言,掌握自动化测试的技术和思路,无疑是个人重要的技术性向道路.因此我准备花一定的篇幅,从新从头开始对于java+selenium…
一.背景和目的 selenium从2.0开始,加入了webdriver,实际上,我们说的selenium自动化测试,大部分情况都是在使用webdriver的API.现在去Selenium官网,发现最新Selenium版本是3.4,我也不知道3.4和2.48之间有什么多大的区别和新的特性,唯一确定的是,在Selenium2.0的时候,启动后firefox的时候,还不需要额外的driver插件支持,现在到Selenium3.0,启动firefox,还需要geckdriver.exe这个在针对fire…
java之文件基本操作 1 使用 BufferedReader 在控制台读取字符 public static void readChar() throws IOException{ char c; InputStreamReader stream=new InputStreamReader(System.in); BufferedReader br=new BufferedReader(stream); System.out.println("Enter characters,'q' to qu…
java swing窗口放置屏幕中央问题思考 以前总是尝试各种方法都没有能把组件放到屏幕中央,只能用死办法,设置绝对坐标,但这样就失去了可移植性,而且繁琐.今天仔细思考了一番,终于被我找出问题所在. 注意以下部分成功的前提条件是:pack(),必须放在以下代码之前执行,否则pack()置于之后将会覆盖前面的位置设置,前面的代码就失效了.这就是一直折磨我的问题. 成功的前提条件是:pack(),必须放在以下代码之前执行,否则pack()置于之后将会覆盖前面的位置设置, 以前总是尝试各种方法都没有能…
这个话题来自: Nutz的issue 361 在考虑这个issue时, 我一直倾向于使用系统变量file.encoding来改变JVM的默认编码. 今天,我想到, 这个系统变量,对JVM的影响到底有多大呢? 我使用最简单的方法看看这个变量的影响--在JDK 1.6.0_20的src.zip文件中,查找包含file.encoding字眼的文件. 共找到4个, 分别是: 先上重头戏 java.nio.Charset类: public static Charset defaultCharset() {…
java用户界面窗口 窗口框 代码如下: package Day08; import java.awt.Color;import java.awt.FlowLayout;import java.awt.Font;import java.awt.GridLayout; import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import java…
在做UI自动化的过程中,有时需要由一个窗口跳转到另一个窗口,这时直接去定位页面元素,可能会出现问题,这时,我们需要将driver与新的窗口进行绑定. 完整代码如下:(python版) #coding=utf-8 import os from selenium import webdriver import time chrome = 'C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe' os.environ["we…
本文仅分析部分原理和集合类的特点,不分析源码,旨在对java的集合类有一个整体的认识,理解各个不同类的关联和区别,让大家在不同的环境下学会选择不同的类来处理. Java中的集合类包含的内容很多而且很重要,很多数据的存储和处理(排序,去重,筛选等)都需要通过集合类来完成. 首先java中集合类主要有两大分支: (1)Collection (2)Map 先看它们的类图: (1)Collection Collection (2)Map Map 可以看到它们之间的关系纷繁复杂,如果不系统的学习一下,还真…
使用mac学习java的一些基本操作 本文主要讲一下MacOS与windows的不同 iTerm2 使用mac的同学是不需要安装虚拟机来学习linux命令的.只需要使用iTerm2[下载地址]+zsh[下载地址]即可. 在zsh的网页中找到download ! 将代码复制到iterm2中,注意他会让你输入电脑的密码,但在iterm2中输入的密码是不显示的. 实际下载好后会出现成功的标志. 2.另外在iTerm2和Linux中,操作命令略有不同,比如linux中的tree命令,在mac中可以使用h…
atitit. java跟php的比较..为什么大企业喜欢java 而不是php 1. 主要原因::php是"低技术.低价格.低素质人员使用"的三低武器 1 2. 三低武器的特点(所谓优点) 2 2.1. 操作简单 2 2.2. 结构简单可靠 2 2.3. 价格低廉 2 2.4. 低后勤保障要求 2 3. 正规军使用的编程语言特点 2 3.1. 高性能 2 3.2. 功能强大 2 3.3. 可以面对大规模项目(敌人) 2 3.4. 需要一定的后勤保障 3 3.5. 代码编译加密,适合商…
centos7下Maven Java selenium3环境搭建 一.Jdk安装 我这里用的是open-jdk. [adawang@localhost src]$ sudo yum search openjdk ... java--openjdk-devel.i686 : OpenJDK Development Environment java--openjdk-devel.x86_64 : OpenJDK Development Environment java--openjdk-devel-…
随着新的 Java 发布生命周期的到来,新版本预计将于 2020 年 3 月发布,本文将对其中的 5 个主要特性作些概述. Java 13刚刚发布给开发人员使用不久,最新版本的JDK于2019年9月发布.但是很少有公司现在改用了Java 13,因为这个版本看起来无论如何都不会从甲骨文公司获得长期支持(LTS).更不要说现在Java 14又已经出现了. 随着新的Java发布生命周期的到来,新的Java版本预计将于2020年3月发布.时间已经所剩不多了,这就是为什么甲骨文公司的Java首席架构师Ma…
Java JUC之Atomic系列12大类实例讲解和原理分解 2013-02-21      0个评论       作者:xieyuooo 收藏    我要投稿 在java6以后我们不但接触到了Lock相关的锁,也接触到了很多更加乐观的原子修改操作,也就是在修改时我们只需要保证它的那个瞬间是安全的即可,经过相应的包装后可以再处理对象的并发修改,以及并发中的ABA问题,本文讲述Atomic系列的类的实现以及使用方法,其中包含: 基本类:AtomicInteger.AtomicLong.Atomic…
JAVA I/O基本操作 JAVA文件操作 JAVA字节流 JAVA字符流 JAVA缓存流 JAVA对象流 JAVA数据流 本文主要借鉴以下博客和网站: how2j.cn 深入理解java中的I/O JAVA文件操作 JAVA描述和管理文件的类是java.io.File类,通过File生成的对象file,可以通过以下指令对文件进行操作: file.exists() – 判断文件是否存在 file.isDirectory() – 判断文件是否为文件夹 file.isFile() – 判断是否是普通…
Selenium WebDriver 8大定位方式: driver.find_element_by_id() driver.find_element_by_name() driver.find_element_by_xpath() driver.find_element_by_class_name() driver.find_element_by_tag_name() driver.find_element_by_css_selector() driver.find_element_by_lin…