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.休眠时间 ...
随机推荐
- 【redis】设置密码
1.第一种方式 (当前这种linux配置redis密码的方法是一种临时的,如果redis重启之后密码就会失效,) (1)首先进入redis,如果没有开启redis则需要先开启:[root@iZ94jz ...
- Spring和SpringMVC总结篇
作者:肥宅兜链接:https://www.cnblogs.com/doudouxiaoye/p/5693399.html 1.为什么使用Spring ? 方便解耦,简化开发;通过Spring提供的Io ...
- scrapy-模块
爬虫模块:beautifulsoup4 scrapy_splash: pip install scrapy_splash scrapy_splash模块,与selenium类似,用来获取js渲染后的h ...
- c# HttpClient的HTTP/2支持
HTTP/2 是 HTTP 协议的主要修订版.HTTP/2 的一些显著功能是支持标头压缩和通过同一连接完全多路复用流.虽然 HTTP/2 保留了 HTTP 的语义(HTTP 标头.方法等),但它在数据 ...
- 格利文科定理(Glivenko–Cantelli Theorem)
格利文科定理:每次从总体中随机抽取1个样本,这样抽取很多次后,样本的分布会趋近于总体分布.也可以理解为:从总体中抽取容量为n的样本,样本容量n越大,样本的分布越趋近于总体分布. (注:总体数据需要独立 ...
- Kafka中的HW、LEO、LSO等分别代表什么?
HW . LEO 等概念和上一篇文章所说的 ISR有着紧密的关系,如果不了解 ISR 可以先看下ISR相关的介绍. HW (High Watermark)俗称高水位,它标识了一个特定的消息偏移量(of ...
- 不刷新网页修改url链接:history.pushState()和history.replaceState()新增、修改历史记录用法介绍
最近遇到了在不刷新页面的情况下修改浏览器url链接的需求,考虑到可以通过history.pushState()解决.现在将我理解的一些内容分享一下,不对的地方欢迎大家指出. 在使用方法前首先需要了解它 ...
- No module named 'requests_toolbelt'
pip install requests-toolbelt
- Maven设置MAVEN_OPTS环境变量
原文地址:https://blog.csdn.net/porsche_gt3rs/article/details/78787491 一 原因: 运行mvn命令实际是执行java命令,既然是运行java ...
- [转帖]浅谈P2P、P2C 、O2O 、B2C、B2B、 C2C的区别
浅谈P2P.P2C .O2O .B2C.B2B. C2C的区别 https://www.cnblogs.com/zhuiluoyu/p/5481635.html 相信有很多人对P2P.P2C .O2O ...