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目录 ...
随机推荐
- Nature/Science 论文阅读笔记
Nature/Science 论文阅读笔记 Unsupervised word embeddings capture latent knowledge from materials science l ...
- Windows UI Library - Roadmap Win UI3.0
https://github.com/microsoft/microsoft-ui-xaml/blob/master/docs/roadmap.md 微软更新太快了.是不是要把开发人员折磨死.... ...
- leetcode 146LRU cache
class LRUCache { public: LRUCache(int capacity) {_capacity=capacity;} //返回key对应的value int get(int ke ...
- FragmentFactory
import android.support.v4.app.Fragment; import java.util.HashMap; public class FragmentFactory { pri ...
- 【flask】使用Flask-WTF处理表单
我的理解是Flask-WTF与html文件的关系就如同SQLAlchemy与数据库之间的关系. 通过python Form类,生成html代码,并在html模板文件中通过{{}}变量的方式引用这些生 ...
- VSCode添加 console.log 快捷键
file - preferences - keyboard shortcuts - keybindings.json: 添加: { "key": "ctrl+ ...
- 阶段3 2.Spring_07.银行转账案例_10 使用动态代理实现事务控制
回到事物的案例中 我们现在希望用代码比较精简的这个AccountServiceImpl这个类.而不是一堆事物的AccountServiceImpl_OLD这个类 新建BeanFactory类 Acco ...
- mysql——前面内容——前期整理笔记00
), sname ), sage ), ssex ) ); ','zhaolei','1990-01-01','nan'); ','qiandian','1990-12-21','nan'); ',' ...
- IntelliJ IDEA将导入的项目转成maven项目
今天导入公司的maven项目,发现结构不对劲,难怪说为啥一直不能部署tomcat,后面百度才了解到导入这个项目还不是maven项目,首先需要把这个项目变成maven项目,然后再进行tomcat的部署下 ...
- UML类图知识点整理
引用源:https://www.cnblogs.com/me115/p/4092632.html 从一个示例开始 请看以下这个类图,类之间的关系是我们需要关注的: 车的类图结构为<<abs ...