webdriver 属于selenium 体系中设计出来操作浏览器的一套API
1.元素的定位
1.id属性定位
实例: find_element_by_id("kw")
2.name属性定位,同id一样是属性值
实例: find_element_by_name("wd")
3.class属性定位
实例: find_element_by_class_name("s_ipt")
4.tag标签名定位
实例: find_element_by_tag_name("input")
5.link文本链接定位
实例: find_element_by_link_text("新闻")
partial link通过标签对之间的部分文本信息来定位元素
实例:find_element_by_partial_link_text("部分文本信息")
6.XPath 定位
绝对路径定位 (div[2]表示当前层级下的第二个div)
实例:find_element_by_xpath("/html/body/div/div[2]/div/div/div/from/span[2]/input")
利用元素属性定位,元素的任意属性都可以使用,*表示任意标签名。
实例:find_element_by_xpath("//input[@id='kw']")
find_element_by_xpath("//*[@type='submit']")
层级与属性的结合,通过上一级或上几级的属性进行定位查找
实例:find_element_by_xpath("//span[@class='bg s_ipt_wr']/input")
find_element_by_xpath("//form[@id='form']/span[2]/input")
使用逻辑运算符and,多个属性来查找元素。
实例:find_element_by_xpath("//input[@id='kw' and @class='su']/span/input")
Firebug前端调试工具 和 FirePath插件可以方面的辅助生成XPath语法
7.css定位
通过class属性定位,用(.)表示
实例:find_element_by_css_selector(".s_ipt")
通过id属性定位。用(#)表示
实例:find_element_by_css_selector("#kw")
通过标签名定位
实例:find_element_by_css_selector("input")
通过父子关系定位
实例:find_element_by_css_selector("span>input")
通过属性定位 title=move mouse here 或者title$=here或者title*=mouse
实例:find_element_by_css_selector("input[title^=move]")
组合定位
实例;find_element_by_css_selector("form.fm>span>input#kw")
2.控制浏览器的大小,后退,前进,刷新。
driver.refresh() (刷新)
3.简单的元素操作
.clear():清楚文本
.send_keys("*value"):模拟按键输入
.click():单击元素
.submit():提交表单 webelement接口常用方法,远不及click()广泛
from selenium import webdriver
一. 1. 引入ActionChains类才可以进行鼠标操作
6.获得验证信息
通常用的最多的验证信息是title.URL.text
title:1.打印当前title和URL
title = drive.title
print(title)
now_url=driver.current_url
print(now_url)
2.执行126邮箱登陆的操作
。。。。。。。。。
3.再次打印当前title.URL和text
title = drive.title
print(title)
now_url=driver.current_url
print(now_url)
user= driver.find_element_by_id(“spnUid”).text
2.切换到表单iframe(id=“if”),switch_to.frame():可以直接取表单的id或name属性
如果iframe没有可用的id或name属性,可以先通过xpath定位,然后将值传给switch_to.frame()
1. driver.switch_to.frame("if")
driver = webdriver.Firefox(firefox_profile=fp)
1.定义要输入的内容text
2.对文本框进行定位
3.将text与javaScript代码通过“+”进行拼接。目的:为了使输入的内容变得可自定义
4.通过execute_Script()执行javaScript代码
再次访问xx网站,将会自动登陆
20.webdriver的原理
webdriver 属于selenium 体系中设计出来操作浏览器的一套API的更多相关文章
- 『心善渊』Selenium3.0基础 — 3、使用Selenium操作浏览器对象的基础API
目录 1.导入Selenium库 2.创建浏览器对象 3.浏览器窗口大小设置 4.浏览器位置设置 5.请求访问网址 6.浏览器页面前进.后退和刷新 7.关闭浏览器 相比于高大上的各种Selenium进 ...
- selenium+python自动化之操作浏览器
一.打开网站 1.第一步:从selenium里面导入webdriver模块 2.打开Firefox浏览器(Ie和Chrome对应下面的) 3.打开百度网址 二.设置休眠 1.由于打开百度网址后,页面加 ...
- Selenium with Python 006 - 操作浏览器
#!/usr/bin/env python # -*- coding: utf-8 -*- from selenium import webdriver import time driver = we ...
- java selenium (十) 操作浏览器
本篇文章介绍selenium 操作浏览器 阅读目录 浏览器最大化 前进,后退, 刷新 public static void testBrowser(WebDriver driver) throws E ...
- [Python爬虫]使用Selenium操作浏览器订购火车票
这个专题主要说的是Python在爬虫方面的应用,包括爬取和处理部分 [Python爬虫]使用Python爬取动态网页-腾讯动漫(Selenium) [Python爬虫]使用Python爬取静态网页-斗 ...
- selenium操作浏览器的前进和后退
前进关键字:driver.forward() 后退关键字:driver.back() 测试对象:1.https://www.baidu.com/ 2.https://www.sogou.com/ 实例 ...
- 爬虫模块介绍--selenium (浏览器自动化测试工具,模拟可以调用浏览器模拟人操作浏览器)
selenium主要的用途就是控制浏览器,模仿真人操作浏览器的行为 模块安装:pip3 install selenium 需要控制的浏览器 from selenium import webdriver ...
- 第三百五十节,Python分布式爬虫打造搜索引擎Scrapy精讲—selenium模块是一个python操作浏览器软件的一个模块,可以实现js动态网页请求
第三百五十节,Python分布式爬虫打造搜索引擎Scrapy精讲—selenium模块是一个python操作浏览器软件的一个模块,可以实现js动态网页请求 selenium模块 selenium模块为 ...
- No.1 selenium学习之路之浏览器操作
selenium基础,首先就是浏览器的相关操作 下面描述几种浏览器的常用操作 1.打开浏览器 webdriver后面添加想要打开的浏览器 Ie或者Chrome 2.打开指定页面(百度) 3.休眠时间 ...
随机推荐
- UFUN函数 UF_UI UF_PART函数(UF_UI_select_with_class_dialog, UF_PART_export_with_options)
/*主要演示 UF_PART_export_with_options 这个函数 */1 //设置class_dialog选择过滤 static int init_proc(UF_UI_selectio ...
- three.js 居中-组
原文:https://blog.csdn.net/qq_30100043/article/details/78921224 代码: <!DOCTYPE html> <html lan ...
- selenium--表格和复选框的定位
表格定位 HTML代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...
- 一步一步编写AVL树
第一步:定义结构体 typedef struct Node{ int d; //data ; //height struct Node* l=NULL; struct Node* r=NULL; No ...
- 搜索法 | 1091bfs搜索:三维bfs
首先我们来理解样例输入: 尺寸:3行4列5片 阈值:2 1 1 1 1 1 1 1 1 1 1 1 1 ------- 0 0 1 1 0 0 1 1 0 0 1 1 ------- 0 1 1 ...
- 一本通 1615:【例 1】序列的第 k 个数
传送门 我在这里! 思路 输入一个序列的前三个数并求出这个序列的第K项,这个数列不是等比序列就是等差数列,等差数列比较好判断,如果序列中\(a_{i+2}-a_{i+1}=a_{i+1}-a_{i}\ ...
- 从$a_n=f(n)$的角度理解数列中的表达式$a_{n+1}=\frac{k}{a_n}$
函数周期性 前面我们学习过函数的周期性的给出方式: \(f(x+a)=f(x)\) \(\hspace{2cm}\) \(T=a\) \(f(x+a)=-f(x)\) \(\hspace{2cm}\) ...
- 【Gamma】测试报告
测试方法及过程 在正式发布前,我们对后端代码.前后端接口.服务器以及前端的页面和功能做了多种测试,主要包括对后端代码的单元测试.针对接口的测试.压力测试以及功能测试. 后端代码单元测试 该部分测试主要 ...
- c# 异步调用(异步模式,基于事件)
c# 异步调用之异步模式Func<string, IImageRequest, string> downloadString = (address, req) => { var cl ...
- 解决myeclipse2017 properties中文被Unicode编码
输入:http://propedit.sourceforge.jp/eclipse/updates/ 在线安装插件解决.