selenium的文档API
你用WebDriver要做的第一件事就是指定一个链接,一般我们使用get方法:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome(r'D:\chrome\Google\Chrome\Application\chromedriver.exe')
driver.get("https://www.baidu.com/")
你可以用下列任意方法找到它:
element = driver.find_element_by_id("passwd-id")
element = driver.find_element_by_name("passwd")
element = driver.find_element_by_xpath("//input[@id='passwd-id']")
content = driver.find_element_by_css_selector('p.content')
等等
from selenium import webdriver
import time
driver = webdriver.Chrome(r'D:\chrome\Google\Chrome\Application\chromedriver.exe')
driver.get("https://www.baidu.com/")
inputClass = driver.find_element_by_id('kw')
time.sleep(3)
inputClass.send_keys("python")
inputClass.clear()
这里我们举个例子就是请求百度然后输入python然后再删除掉,inputClass.clear()就是清楚搜索框内容假如前面就有内容的话可以先删除掉再输入,这里的kw就是搜索框id
然后我们需要再给我们搜索
from selenium import webdriver
import time
driver = webdriver.Chrome(r'D:\chrome\Google\Chrome\Application\chromedriver.exe')
driver.get("https://www.baidu.com/")
inputClass = driver.find_element_by_id('kw')
inputClass.send_keys("python")
time.sleep(3)
button = driver.find_element_by_id("su")
button.click()
然后我们就可以通过page_source获取搜索后的源代码然后就是beautifulsoup等等包继续获取了
在窗口(window)和框架(frame)间移动
现在的网页应用里没有页面框架或者只用一个窗口就包含了所有内容的已经很少了。WebDriver 支持在指定的窗口间移动,方法为switch_to_window:
driver.switch_to_window("windowName")
这个switch_to_window用的是target标签
现在所有的driver的调用都会指向这个给定的窗口,但是我们怎么知道窗口的名字是什么呢?可以看一看打开这个窗口的javascript脚本或者link链接:
<a href="somewhere.html" target="windowName">Click here to open a new window</a>
行为链
ActionChains可以完成简单的交互行为,例如鼠标移动,鼠标点击事件,键盘输入,以及内容菜单交互。这对于模拟那些复杂的类似于鼠标悬停和拖拽行为很有用
不管怎样,这些动作总是一个接一个按他们被调用的顺序执行。
click(on_element=None)
点击一个元素
参数: * on_element:要点击的元素,如果是None,点击鼠标当前的位置
click_and_hold(on_element=None)
鼠标左键点击一个元素并且保持
参数: * on_element:同click()类似
double_click(on_element=None)
双击一个元素
参数: * on_element:同click()类似
drag_and_drop(source, target)
鼠标左键点击source元素,然后移动到target元素释放鼠标按键
参数: source:鼠标点击的元素 target:鼠标松开的元素
drag_and_drop_by_offset(source, xoffset,yoffset)
拖拽目标元素到指定的偏移点释放
参数: source:点击的参数 xoffset:X偏移量 * yoffset:Y偏移量
key_down(value,element=None)
只按下键盘,不释放。我们应该只对那些功能键使用(Contril,Alt,Shift)
参数: value:要发送的键,值在Keys类里有定义 element:发送的目标元素,如果是None,value会发到当前聚焦的元素上
例如,我们要按下 ctrl+c:
ActionChains(driver).key_down(Keys.CONTROL).send_keys('c').key_up(Keys.CONTROL).perform()
key_up(value,element=None)
释放键。参考key_down的解释
move_by_offset(xoffset,yoffset)
将当前鼠标的位置进行移动
参数: xoffset:要移动的X偏移量,可以是正也可以是负 yoffset:要移动的Y偏移量,可以是正也可以是负
move_to_element(to_element)
把鼠标移到一个元素的中间
参数: * to_element:目标元素
move_to_element_with_offset(to_element,xoffset,yoffset)
鼠标移动到元素的指定位置,偏移量以元素的左上角为基准
参数: to_element:目标元素 xoffset:要移动的X偏移量 * yoffset:要移动的Y偏移量
perform()
执行所有存储的动作
release(on_element=None)
释放一个元素上的鼠标按键,
参数: * on_element:如果为None,在当前鼠标位置上释放
send_keys(*keys_to_send)
向当前的焦点元素发送键
参数: * keys_to_send:要发送的键,修饰键可以到Keys类里找到
send_keys_to_element(element,*keys_to_send)
向指定的元素发送键
selenium的文档API的更多相关文章
- jQuery全屏滚动插件fullPage.js中文帮助文档API
jQuery全屏滚动插件fullPage.js中文帮助文档API 发现了一个fullPage.js插件,于是百度了一下,还就是这个插件的作用,其实有很多网站都做了全屏滚动的特效,效果也很好看,今天 ...
- 百度地图和高德地图坐标系的互相转换 四种Sandcastle方法生成c#.net帮助类帮助文档 文档API生成神器SandCastle使用心得 ASP.NET Core
百度地图和高德地图坐标系的互相转换 GPS.谷歌.百度.高德坐标相互转换 一.在进行地图开发过程中,我们一般能接触到以下三种类型的地图坐标系: 1.WGS-84原始坐标系,一般用国际GPS纪录仪记 ...
- 大数据相关文档&Api下载
IT相关文档&Api下载(不断更新中) 下载地址:https://download.csdn.net/user/qq_42797237/uploads 如有没有你需要的API,可和我留言,留下 ...
- GrapeCity Documents (服务端文档API组件) V3.0 正式发布
近日,葡萄城GrapeCity Documents(服务端文档API组件)V3.0 正式发布! 该版本针对 Excel 文档.PDF 文档和 Word 文档的 API 全面更新,加入了用于生成 Exc ...
- GrapeCity Documents for Excel 文档API组件 V2.2 新特性介绍
GrapeCity Documents for Excel 文档API组件 V2.2 正式发布,本次新版本包含诸多重量级产品功能,如:将带有形状的电子表格导出为 PDF.控制分页和电子表格内容.将Ex ...
- [转载]Android SDK 离线文档 (api 20)(升级至api 23)
原文地址:SDK 离线文档 (api 20)(升级至api 23)">Android SDK 离线文档 (api 20)(升级至api 23)作者:leechenhwa Android ...
- [译]Selenium Python文档:七、WebDriver API接口
由于API文档格式不太适合cnblog博客,暂且翻译一部分,且暂未校对 注意:这不是官方文档,官方 API文档在这里. 本章包含Selenium WebDriver的所有接口 推荐import风格 本 ...
- [译]Selenium Python文档:目录
作者:Baiju Muthukadan 协议:本文档采用知识共享署名 - 共享4.0国际许可. 原英文网址:http://selenium-python.readthedocs.io/index.ht ...
- [译]Selenium Python文档:八、附录:FAQ常见问题
另外一个FAQ:https://github.com/SeleniumHQ/selenium/wiki/Frequently-Asked-Questions 8.1.怎样使用ChromeDriver ...
随机推荐
- keil5 使用JLink 向nrf52840DK 下载程序出现No Cortex-M SW Device Found
今天打开52840 keil5 工程,下载程序无法下载成功,提示如下: 在Jlink 配置中(Option for target....-> Debug->Setting )SWDIO也无 ...
- windows 下apache开启FastCGI
1.首先去(http://www.apachelounge.com/download/)下载一个合适的mod_fcgid 文件. 2.将解压后的文件改为mod_fcgid.dll 并复制到a ...
- fdisk时WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
现象:划分磁盘有警告, fdisk可以看到 lsblk却没有 partprobe刷新分区还是不行 放大招 #reboot #这个是最好的方法(重启后新的分区表不一定生效) 或 # partx -a ...
- QPS过万,redis大量连接超时怎么解决?
7月2号10点后,刚好某个负责的服务发生大量的redis连接超时的异常(redis.clients.jedis.exceptions.JedisConnectionException),由于本身的数据 ...
- Windows 下mysqldump备份1045错误解决办法
一.我写的备份脚本如下 set d=%date:~0,4%%date:~5,2%%date:~8,2% C:\mysqldump -uroot -ptest@2018 --all-databases ...
- 服务应用突然宕机了?别怕,Dubbo 帮你自动搞定服务隔离!
某日中午,午睡正香的时候,接到系统的报警电话,提示生产某物理机异常宕机了,目前该物理机已恢复,需要重启上面部署的应用. 这时瞬间没有了睡意,登上堡垒机,快速重启了应用,系统恢复正常.本想着继续午睡,但 ...
- 开源搜索引擎排名第一,Elasticsearch是如何做到的?
一.引言 随着移动互联网.物联网.云计算等信息技术蓬勃发展,数据量呈爆炸式增长.如今我们可以轻易得从海量数据里找到想要的信息,离不开搜索引擎技术的帮助. 作为开源搜索引擎领域排名第一的 Elast ...
- springboot-swagger配置
原文地址 https://www.cnblogs.com/softidea/p/6251249.html https://www.cnblogs.com/xiebq/p/9181517.html 1p ...
- 巧用HashMap一行代码统计单词出现次数
简介 JDK是在一直在迭代更新的,很多我们熟悉的类也悄悄的添加了一些新的方法特性.比如我们最常用的HashMap. 今天给大家讲一下HashMap在JDK8中添加的两个新方法compute和merge ...
- 创建一个springbootcloud项目
nacos:服务治理 fegin:负载均衡 sentinel:分布式系统的流量防卫兵 sleuth+zipkin:链路追踪 前提软件安装 nacos: github下载地址:https://githu ...