[Python爬虫] 之六:Selenium 常用控件用法
Selenium 常用控件用法
1、文本框

上图中,如何定位搜索文本框,并输入搜索内容进行搜索
首先:利用方法 find_element_by_xpath定位元素:inputElements = self.driver.find_element_by_xpath("//input[@class='W_input']")
其次:在文本框中输入要搜索的内容:inputElements.send_keys(u'足球') #在文本框中输入“足球”
最后:点击回车,进行搜索:inputElements.send_keys(Keys.ENTER)
上面这种方式效率较低,效率较高的方式为执行js脚本:
js = "var obj = document.getElementsByName('keyword')[0];obj.value='足球';"
self.driver.execute_script(js)
2、href链接
第一种情况:href中内容为链接地址:如下图

这种情况如何打开链接?
首先定位元素:nextElement = self.driver.find_element_by_xpath("//a[@class='page next S_txt1 S_line1']")
获取href链接:nextUrl = nextElement.get_attribute('href')
打开链接: self.driver.get(nextUrl)
第二种情况:href中内容为“javascript:void(0);”:如下图

如何打开上图中“高级搜索”这个链接
定位元素:adv_elements = self.driver.find_element_by_xpath("//a[@class='adv_settiong']")
打开:adv_elements.click()
3、radio
选择对应的radio

ori_elements = self.driver.find_element_by_id("radio03")
ori_elements.click()
4、下拉列表

1、直接定位
self.driver.find_element_by_xpath("//select[@name='prov']/option[@value='11']").click()
2、Select模块(index):直接根据属性或索引定位
先要导入select方法:from selenium.webdriver.support.select import Select
然后通过select选项的索引来定位选择对应选项(从0开始计数),如选择第三个选项:select_by_index(2)
prov = self.driver.find_element_by_xpath("//select[@name='prov']")
Select(prov).select_by_index(2)#索引从0开始
3、Select模块(value):直接根据属性或索引定位
Select模块里面除了index的方法,还有一个方法,通过选项的value值来定位。每个选项,都有对应的value值
prov = self.driver.find_element_by_xpath("//select[@name='prov']")
Select(prov).select_by_value("11")
4、Select模块(text)
Select模块里面还有一个更加高级的功能,可以直接通过选项的文本内容来定位。
prov = self.driver.find_element_by_xpath("//select[@name='prov']")
Select(prov).select_by_visible_text(u'北京')
5、时间控件

把时间控件的只读属性去掉,直接赋给时间控件时间
第一种方式:
startTime = self.driver.find_element_by_xpath("//input[@name='stime']")
js = 'document.getElementsByName("stime")[0].removeAttribute("readonly")'
#js = 'document.getElementByID("stime").removeAttribute("readonly")'
self.driver.execute_script(js)
startTime.clear()
startTime.send_keys("2017-03-25")
这种方式效率较低
第二种方式是执行js脚本,效率较高:
js = 'var obj = document.getElementsByName("stime")[0];obj.removeAttribute("readonly");obj.value="2017-03-25";'
self.driver.execute_script(js)
两行代码就可以搞定
[Python爬虫] 之六:Selenium 常用控件用法的更多相关文章
- iOS开发之六:常用控件--UIImageView的使用
UIImageView是我们做iOS开发用的非常多的一个控件,IOS中的各种图片,包括头像,有的背景图片等基本都要用到这个控件. 1.常用的属性以及方法 <span style="fo ...
- Android笔记---常用控件以及用法
这篇文章主要记录下Android的常用控件以及使用的方法,Android 给我们提供了大量的UI控件,合理地使用这些控件就可以非常轻松地编写出相当不错的界面,这些是Android学习的基础,没有什么业 ...
- MFC编程入门之二十(常用控件:静态文本框)
上一节讲了颜色对话框之后,关于对话框的使用和各种通用对话框的介绍就到此为止了.从本节开始将讲解各种常用控件的用法.常用控件主要包括:静态文本框.编辑框.单选按钮.复选框.分组框.列表框.组合框.图片控 ...
- python爬虫:一些常用的爬虫技巧
python爬虫:一些常用的爬虫技巧 1.基本抓取网页 get方法: post方法: 2.使用代理IP 在开发爬虫过程中经常会遇到IP被封掉的情况,这时就需要用到代理IP; 在urllib2包中有Pr ...
- C# 常用控件属性及方法介绍
C#常用控件属性及方法介绍 目录 1.窗体(Form) 2.Label (标签)控件 3.TextBox ...
- CustomValidator控件用法
虽然大部分时间一直从事asp.net的开发,对于一些常用的asp.net服务器端验证控件及它们的组合使用比较熟悉,如:CompareValidator ——比较验证控件RangeValidator — ...
- EasyUI常用控件禁用方法
EasyUI常用控件禁用方法: 1.validatebox可以用的用法:前两种适用于单个的validatebox; 第三种应用于整个form里面的输入框; <1>.$("#id& ...
- VS2010/MFC编程入门之二十二(常用控件:按钮控件Button、Radio Button和Check Box)
言归正传,鸡啄米上一节中讲了编辑框的用法,本节继续讲解常用控件--按钮控件的使用. 按钮控件简介 按钮控件包括命令按钮(Button).单选按钮(Radio Button)和复选框(Check Box ...
- VS2010/MFC编程入门之二十(常用控件:静态文本框)
上一节鸡啄米讲了颜色对话框之后,关于对话框的使用和各种通用对话框的介绍就到此为止了.从本节开始鸡啄米将讲解各种常用控件的用法.常用控件主要包括:静态文本框.编辑框.单选按钮.复选框.分组框.列表框.组 ...
随机推荐
- ThinkPHP 多语言的实现
1.按照官方文档进行修改 2.注意区分项目语言包和系统语言包 3.实现语言包和数据库语言同步切换 4.thinkPHP多语言实现与Cookie有关, 谷歌浏览器下按F12查看Request Heade ...
- Docker应用系列(五)| 构建Mongodb服务器
本示例基于Centos 7,假设目前使用的账号为release,拥有sudo权限. 由于Docker官方镜像下载较慢,可以开启阿里云的Docker镜像下载加速器,可参考此文进行配置. 主机上服务安装步 ...
- Boolean Expressions POJ - 2106 (表达式求值)
The objective of the program you are going to produce is to evaluate boolean expressions as the one ...
- 【BZOJ 3561】 3561: DZY Loves Math VI (莫比乌斯,均摊log)
3561: DZY Loves Math VI Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 205 Solved: 141 Description ...
- 埃及分数 a* 搜索 知识点mark
题意 在古埃及,人们使用单位分数的和(即1/a,a是自然数)表示一切有理 数. 例如,2/3=1/2+1/6,但不允许2/3=1/3+1/3,因为在加数中不允许有相同的. 对于一个分数a/b,表示方法 ...
- Eclipse里选中一个变量后,这个类里的该变量不变色了?
Eclipse里选一个变量后,这个类里的该变量不变色了. 1.使用“Alt+Shift+O”对该提示功能的开/关切换 2.可以在以下设置选中后的文本提示颜色 window--> Prefere ...
- bzoj 4874: 筐子放球
4874: 筐子放球 Time Limit: 10 Sec Memory Limit: 256 MB Description 小N最近在研究NP完全问题,小O看小N研究得热火朝天,便给他出了一道这样 ...
- 今天测试了一下 sqlalchemy 性能
self.db.query(Users).filter(Users.Id==1).first() < self.db.execute('SELECT * FROM `users` WHERE ...
- 为什么要使用netty
选择Netty的理由在开始本节之前,我先讲一个亲身经历的故事:曾经有两个项目组同时用到了NIO编程技术,一个项目组选择自己开发NIO服务端,直接使用JDK原生的API,结果2个多月过去了,他们的NIO ...
- 常用Linux命令集锦-ls命令
1.命令格式:ls [选项] [目录名] 2.常用参数 -a:列出该目录下所有文件(包含隐藏文件). -A:列出该目录下除了隐藏文件的所有文件. -l:以行显示目录下的所有文件.输出信息从左到右分别是 ...