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目录 ...
随机推荐
- Java代码审计-铁人下载系统
初学 java 代码审计,跟着表哥们脚步,走一遍审计流程,就选了个没有使用 Java 框架的 java 系统,作为入门. 目的是为了熟悉代码审计流程,寻找漏洞的思路,入门记录. 准备工作 为了验证审计 ...
- redhat下配置SEED DVS6446开发环境3
1.运行arm_v5t_le-gcc,报错为: 64bit的Linux操作系统,无法运行32bit的应用程序 /lib/ld-linux.so.2: bad ELF interpreter: No s ...
- ControlTemplate in WPF —— Checkbox
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" x ...
- 诺依/RuoYi开源系统搭建总结
问题一:从{码云}下载下来看,输入项目编码不过 解决方法: 加入下列依赖,版本要和下载下来的{spring-boot-dependencies}一致.不一致就会报问题2: <parent> ...
- kernel function
下面这张图位于第一.二象限内.我们关注红色的门,以及“北京四合院”这几个字下面的紫色的字母.我们把红色的门上的点看成是“+”数据,紫色字母上的点看成是“-”数据,它们的横.纵坐标是两个特征.显然,在这 ...
- Golang基础(7):go的net/rpc用法
一:PRC是什么? RPC(Remote Procedure Call) 远程过程调用,是一个计算通信协议.该协议允许一台计算机上的程序调用另外一台计算机上的程序.远程过程调用就是2个不在同一台计算机 ...
- ps和top进程监控
一.名词解释 1.什么是进程(what is process)? 答:进程是程序运行的过程,伴有动态,生命和运行状态.(组成:1.已分配内存的地址空间 2.安全属性,包括所有权凭据和特权 3.程序 ...
- 20191209 Linux就该这么学(6)
6. 存储结构与磁盘划分 6.1 一切从"/"开始 Linux 系统中的一切文件都是从"根(/)"目录开始的,并按照文件系统层次化标准(FHS)采用树形结构来存 ...
- A Dangerous Maze (期望值)
https://vjudge.net/problem/LightOJ-1027?tdsourcetag=s_pctim_aiomsg [被满为姐姐碾压 降智打击题]
- HDU-5201 The Monkey King
题目描述 \(m\)个猴子分\(n\)个桃,要求第一个猴子的桃数严格大于其他猴子,问有多少种分法对\(1e9+7取模(\%1e9+7)\) Input \(1≤T≤25 ,1≤n,m≤100000\) ...