ui自动化之selenium操作(二)定位元素-简单操作
1. 将浏览器最大化
这里拿chrome举例,但是我在执行的时候一直报错,被坑了好久;
解决办法:
这是因为chromedriver是和chrome一一对应的,不兼容的版本就会报错;
所有chrome-driver都可以在这里下载:http://chromedriver.storage.googleapis.com/index.html
这里网盘链接中附带chrome57和对应的chrome-driver安装包,自取:http://pan.baidu.com/s/1c17EITq
from selenium import webdriver
import time
browser = webdriver.Chrome()
url = "http://www.baidu.com"
browser.get(url)
browser.maximize_window()
time.sleep(2)
browser.quit()
2. 设置浏览器固定宽高
from selenium import webdriver
import time
browser = webdriver.Chrome()
url = "http://www.baidu.com"
browser.get(url)
browser.set_window_size(100,500)
time.sleep(2)
browser.quit()
3. 操控浏览器前进、后退
from selenium import webdriver
import time
browser = webdriver.Chrome()
#访问百度
firsturl = "http://www.baidu.com"
browser.get(firsturl)
time.sleep(1)
#访问淘宝
second_url = "http://www.taobao.com"
browser.get(second_url)
time.sleep(1)
#后退
browser.back()
time.sleep(1)
#前进
browser.forward()
time.sleep(1)
browser.quit()
为了让每一步都看的比较清楚,加上time.sleep(1);
4. 简单对象定位
对象的定位是自动化测试的核心。
想要操作一个对象,首先咱们得识别;
定位对象的目的:
- 操作对象;
- 获取对象的属性;
- 获取对象的text;
- 获取对象的数量;
webdriver对象定位的方法:
- id
- name
- class name
- link text
- partial link text
- tag name
- xpath
- css selector
4.1 通过id和name定位
通过前面前端知识的学习,大家应该已经知道,一般来说前端页面都会对id和name有不同的命名,所以这两个是咱们经常用到的定位方式;
还是拿百度举例:
想要定位这个输入框,咱们可以借助浏览器的F12,如下图操作:
这里我们通过id定位:
from selenium import webdriver
import time
browser = webdriver.Chrome()
#访问百度
firsturl = "http://www.baidu.com"
browser.get(firsturl)
time.sleep(1)
#找到id为“kw”的输入框并输入搜索条件:测试
browser.find_element_by_id("kw").send_keys("测试")
time.sleep(2)
#关闭浏览器
browser.quit()
通过name定位:
from selenium import webdriver
import time
browser = webdriver.Chrome()
#访问百度
firsturl = "http://www.baidu.com"
browser.get(firsturl)
time.sleep(1)
#找到name为“wd”的输入框并输入搜索条件:测试
browser.find_element_by_name("wd").send_keys("测试")
time.sleep(2)
#关闭浏览器
browser.quit()
4.2 通过class name 和tag name定位
我们在这里也可以通过class name和tag name来进行定位;
通过class name定位:
from selenium import webdriver
import time
browser = webdriver.Chrome()
#访问百度
firsturl = "http://www.baidu.com"
browser.get(firsturl)
time.sleep(1)
#找到classname为“s_ipt”的输入框并输入搜索条件:测试
browser.find_element_by_class_name("s_ipt").send_keys("测试")
time.sleep(2)
#关闭浏览器
browser.quit()
通过tag name定位:
from selenium import webdriver
import time
browser = webdriver.Chrome()
#访问百度
firsturl = "http://www.baidu.com"
browser.get(firsturl)
time.sleep(1)
#找到tag name为“input”的输入框并输入搜索条件:测试
browser.find_element_by_tag_name("input").send_keys("测试")
time.sleep(2)
#关闭浏览器
browser.quit()
4.3 css定位
css定位比较灵活,如果对css比较熟悉的话可以用这种定位方式;
from selenium import webdriver
import time
browser = webdriver.Chrome()
#访问百度
firsturl = "http://www.baidu.com"
browser.get(firsturl)
time.sleep(1)
#找到id为“kw”的输入框并输入搜索条件:测试
# browser.find_element_by_css_selector("#kw").send_keys("测试") #找到class name为s_ipt的输入框并输入搜索条件
# browser.find_element_by_css_selector(".s_ipt").send_keys("测试") #找到a标签下name属性为tj_trnews的并点击
browser.find_element_by_css_selector("a[name=\"tj_trnews\"]").click()
time.sleep(2)
#关闭浏览器
browser.quit()
4.4 link定位
有时候不是一个输入框也不是一个按钮,而是一个文字链接,我们可以通过link;
from selenium import webdriver
import time
browser = webdriver.Chrome()
#访问百度
browser.get("http://www.baidu.com")
time.sleep(2) browser.find_element_by_link_text("贴吧").click()
time.sleep(5) #关闭浏览器
browser.quit()
一般一个页面上不会出现相同的文件链接,通过文字链接来定位也是一种简单有效的定位方式。
ui自动化之selenium操作(二)定位元素-简单操作的更多相关文章
- selenium常用操作,查找元素,操作Cookie,获取截图,获取窗口信息,切换,执行js代码
目录: 1. 常用操作 2. 查找元素 3. 操作Cookie 4. 获取截图 5. 获取窗口信息 6. 切换 7. 执行JS代码 简介 selenium.webdriver.remote.webdr ...
- Dojo初探之3:dojo的DOM操作、query操作和domConstruct元素位置操作(基于dojo1.11.2版本)
前言: 前面两章讲了dojo的基本规范和配置,当然这个配置不是必须的,当你有这需求的时候就可以用到dojo的config配置. dojo的所有js都是符合AMD规范进行异步加载的:http://blo ...
- 【Selenium01篇】python+selenium实现Web自动化:搭建环境,Selenium原理,定位元素以及浏览器常规操作!
一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 二.话不多说,直接开干,开始搭建自动化测试环境 这里以前在 ...
- ui自动化之selenium操作(五)简单元素操作--续
1. 多窗口切换 有时候需要在多窗口切换,webdriver提供了switch_to_window()方法支持切换窗口: from selenium import webdriver import o ...
- ui自动化之selenium操作(四)简单元素操作
1. clear() clear()方法用于清除文本输入框内的内容:一般输入框中都有默认文字,如果不清空有可能会导致字符拼接: browser.find_element(By.ID,"use ...
- ui自动化之selenium操作(三)xpath定位
xpath 的定位方法,非常强大.使用这种方法几乎可以定位到页面上的任意元素. 1. 什么是xpath? xpath 是XML Path的简称, 由于HTML文档本身就是一个标准的XML页面,所以我们 ...
- UI自动化和selenium相关以及八大定位
一.UI自动化相关 1. UI自动化的本质(重点) 定位元素→操作元素→模拟页面操作→断言→测试报告 2. 适合UI自动化的场景 UI自动化的前提条件 (1)需求不能频繁变动 (2)UI稳定(UI自动 ...
- Appium学习路—Android定位元素与操作
一.常用识别元素的工具 uiautomator:Android SDK自带的一个工具,在tools目录下 monitor:Android SDK自带的一个工具,在tools目录下 Appium Ins ...
- Appium Android定位元素与操作
文章写得很好,转载备用 一.常用识别元素的工具 uiautomator:Android SDK自带的一个工具,在tools目录下 monitor:Android SDK自带的一个工具,在tools目录 ...
随机推荐
- leetcode 140 单词拆分2 word break II
单词拆分2,递归+dp, 需要使用递归,同时使用记忆化搜索保存下来结果,c++代码如下 class Solution { public: //定义一个子串和子串拆分(如果有的话)的映射 unorder ...
- 阶段3 2.Spring_07.银行转账案例_9 基于子类的动态代理
代理一个普通的java类 导入cglib的包 它还有一个asm的依赖.会自动加进来 创建cglib的文件夹.把proxy里面的Client和Producer复制到cglib文件夹 Producer不实 ...
- 阶段3 2.Spring_06.Spring的新注解_2 spring的新注解-Bean
下面要解决第二部分的配置问题 这两行一出场,就表示可以通过调用构造函数实例化.因为这都是newInstance 上面的需要加上参数,下面的没有任何参数 下面这俩实现的效果不一样. 下面这个除了会创建对 ...
- 锋利的jQuery(第二版) 初读笔记
window.onload(): 必须等待网页中所有的内容加载完毕后(包括图片)才能执行. $(document).ready(): 网页中所有DOM结构绘制完毕后就执行,可能DOM元素关联的东西并没 ...
- UML_2_浅谈UML的概念和模型之UML九种图
转载:https://my.oschina.net/zhumenzhongren/blog/667353 上文我们介绍了,UML的视图,在每一种视图中都包含一个或多种图.本文我们重点讲解UML每种图的 ...
- Action Script 3.0入门基本概念——IDE&编译与运行
[编写ActionScript代码的工具] ActionScript代码是用纯文本编写的,所以ActionScript程序可以仅由简单的文本编辑器来创建,如Windows上的记事本或Macintosh ...
- python学习之迭代器
4.5 迭代器 4.5.1 可迭代对象 **字面意思分析**:可以重复的迭代的实实在在的东西. list,dict(keys(),values(),items()),tuple,str,set,ran ...
- gitlab ssh 免密登录
打开本地git 使用 ssh-keygen 工具 输入命令 ssh-keygen -t rsa -C '你的邮箱账号' 接下来输入密码 确认密码 找到目录 找到公钥 在 gitlab 用户设置 ...
- Java 8中处理集合的优雅姿势——Stream
在Java中,集合和数组是我们经常会用到的数据结构,需要经常对他们做增.删.改.查.聚合.统计.过滤等操作.相比之下,关系型数据库中也同样有这些操作,但是在Java 8之前,集合和数组的处理并不是很便 ...
- python 并发编程 多线程 定时器
定时器 就是隔多长时间去触发任务执行 指定n秒后执行某操作 Timer如何使用,看Timer源码 class Timer(Thread): """Call a funct ...