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.休眠时间 ...
随机推荐
- 异常DBG_PRINTEXCEPTION_C(0x40010006)和DBG_PRINTEXCEPTION_WIDE_C(0x4001000A)
简介 DBG_PRINTEXCEPTION_C,代码0x40010006:DBG_PRINTEXCEPTION_WIDE_C,代码0x4001000A:在调试器的控制台窗口打印异常信息/调试信息.它定 ...
- 掌握Visual Studio断点
我知道你现在在想什么.断点?真的吗?关于断点有什么需要掌握的?你按F9然后停在代码行.如果你是这么想的,这篇文章是给你的:继续读 Visual Studio提供了一组相当丰富的断点类型和操作,可以使您 ...
- 洛谷 P2253 好一个一中腰鼓! 题解
P2253 好一个一中腰鼓! 题目背景 话说我大一中的运动会就要来了,据本班同学剧透(其实早就知道了),我萌萌的初二年将要表演腰鼓[喷],这个无厘头的题目便由此而来. Ivan乱入:"忽一人 ...
- 转载:深度学习在NLP中的应用
之前研究的CRF算法,在中文分词,词性标注,语义分析中应用非常广泛.但是分词技术只是NLP的一个基础部分,在人机对话,机器翻译中,深度学习将大显身手.这篇文章,将展示深度学习的强大之处,区别于之前用符 ...
- [SDOi2012]Longge的问题(洛谷 2303)
题目描述 Longge的数学成绩非常好,并且他非常乐于挑战高难度的数学问题.现在问题来了:给定一个整数N,你需要求出∑gcd(i, N)(1<=i <=N). 输入格式 一个整数,为N. ...
- Spring Cloud 升级最新 Greenwich 版本,舒服了~
去年将 Spring Cloud 升级到了 Finchley 版本: Spring Cloud 升级最新 Finchley 版本,踩了所有的坑! 这个大版本栈长是踩了非常多的坑啊,帮助了不少小伙伴. ...
- Mac-搭建Hadoop集群
You have to work very hard to believe that you are really powerless. Mac-搭建Hadoop集群 我用到了:VMware Fusi ...
- sqlException 使用relace 替换单引号
我们从前端输入数据的时候,可能会输入一些 单引号 ,的字符 导致直接进行执行sql 语句保存的时候出现错误 如: 输入的有 单引号 保存按钮小代码 <asp:Button ID="bt ...
- VisualSVN 新版本终于支持一个解决方案下多workcopy了,并解决了上个版本一个重要BUG
Multiple working copies within a single solution VisualSVN 7.0 and older require the solution file a ...
- Apache信息头
package org.apache.http; public final class HttpHeaders { public static final String ACCEPT = " ...