一、首先呢,选择一个编辑器,我们这里选择的是Sublime Text

>Ctrl+B为运行当前脚本的快捷方式

二、编写代码

 #coding==utf-8
from selenium import webdriver
from time import sleep driver=webdriver.Chrome()
driver.get("http://www.baidu.com")
#driver.get("http://m.mail.10086.cn") print("浏览器最大化")
driver.maximize_window() #将浏览器最大化显示
'''
#参数数字为像素点,当测试一个手机屏幕的时候,就有必要将浏览器的大小设置为手机屏幕的大小
print("设置浏览器宽480、高800显示")
driver.set_window_size(480,800) #400代表宽度,800代表高度
'''
driver.find_element_by_link_text(u"新闻").click() sleep(2)
#访问新闻页面
first_url="http://news.baidu.com"
print("back to %s" %(first_url))
driver.back()
sleep(2) #前进到新闻页
second_url="http://news.baidu.com"
print("forward to %s"%(second_url))
driver.forward()
sleep(2)

2.鼠标事件、键盘事件

3.设置等待时间

1)sleep(3) #固定休眠时间3s

2) driver.implicitly_wait(30) #添加只能等待30s,如果30s只能之内显示了id为su的的元素,则继续运行脚本,如果超过30s才显示此元素,则抛出异常。

driver.find_element_by_id("su").click()

3)WebDriverWait(driver,10,1).until(lambda driver:driver.find_element_by_id("kw")) #此方法为智能等待。语句解释说明:括号中driver--定义的,10--最大等待时间,1每秒检查一次元素是否可见,如果没有第三个参数,那么默认0s检查一次元素是否可见。until判断元素是否可见,

举例说明:

————————————————————————————————————————

判断百度输入框的可见性,如果可见,则在输入框中输入“selenium”

aa=WebDriverWait(driver,10).until(lambda driver:driver.find_element_by_id("kw"))

aa.send_keys("selenium")

运行代码如下:

 #coding==utf-8
from selenium import webdriver
#导入WebDriverWait包
from selenium.webdriver.support.ui import WebDriverWait
#导入time包
from time import sleep driver=webdriver.Chrome()
driver.get("http://www.baidu.com")
#判断百度首页的输入框是否存在,如果存在,输入框中输入selenium
aa=WebDriverWait(driver,10).until(lambda driver:driver.find_element_by_id("kw"))
aa.send_keys("selenium")

————————————————————————————————————————

————————————————————————————————————————————————————

第八节:定位一组对象

如果想打开本地的一个文件,那么需要导入本地的os模块。(import os)

第九节:层级的定位

二次定位:

二次定位:

第十节:定位frame中的对象

【虫师讲Selenium+Python】第三讲:操作测试对象的更多相关文章

  1. 第三百五十节,Python分布式爬虫打造搜索引擎Scrapy精讲—selenium模块是一个python操作浏览器软件的一个模块,可以实现js动态网页请求

    第三百五十节,Python分布式爬虫打造搜索引擎Scrapy精讲—selenium模块是一个python操作浏览器软件的一个模块,可以实现js动态网页请求 selenium模块 selenium模块为 ...

  2. selenium+Python(事件)

    1.操作测试对象前面讲到了不少知识都是定位元素,定位只是第一步,定位之后需要对这个元素进行操作.鼠标点击或者键盘输入,这要取决于我们定位的是按钮还输入框.一般来说,webdriver 中比较常用的操作 ...

  3. python爬虫积累(一)--------selenium+python+PhantomJS的使用(转)

    阅读目录 一.Selenium介绍 二.爬虫为什么要用selenium? 三.PhantomJS介绍 四.PhantomJS安装 五.操作实战 六.在此推荐虫师博客的学习资料 selenium + p ...

  4. python爬虫积累(一)--------selenium+python+PhantomJS的使用

    最近按公司要求,爬取相关网站时,发现没有找到js包的地址,我就采用selenium来爬取信息,相关实战链接:python爬虫实战(一)--------中国作物种质信息网 一.Selenium介绍 Se ...

  5. selenium + python自动化测试unittest框架学习(一)selenium原理及应用

    unittest框架的学习得益于虫师的<selenium+python自动化实践>这一书,该书讲得很详细,大家可以去看下,我也只学到一点点用于工作中,闲暇时记录下自己所学才能更加印象深刻. ...

  6. 搭建selenium + Python环境的总结:

    安装Python+Selenium 写博客是一个不错的选择,首先,是担心自己忘掉,其次,可以供大家做一个参考: 其实,这是自己第一次搭建Python环境(之前用了一周的Idle),还是比较容易的吧: ...

  7. <译>Selenium Python Bindings 5 - Waits

    如今,大多数的Web应用程序使用AJAX技术.当页面加载到浏览器,页面中的元素也许在不同的时间间隔内加载.这使得元素很难定位,如果在DOM中的元素没有呈现,它将抛出ElementNotVisibleE ...

  8. <译>Selenium Python Bindings 2 - Getting Started

    Simple Usage如果你已经安装了Selenium Python,你可以通过Python这样使用: #coding=gbk ''' Created on 2014年5月6日 @author: u ...

  9. selenium python 第一个脚本

    为什么选择python?我的回答很简单,简单易学,功能强大! 下面看看python和selenium 2的结合是什么样子吧 一.第一个selenium python脚本: #coding = utf- ...

随机推荐

  1. Vim 的 Python 编辑器详细配置过程 (Based on Ubuntu 12.04 LTS)

    为什么要用vim编辑py文件? 因为在Linux命令行中,缺少图形界面的IDE,vim是最佳的文本编辑器,而为了更好的编辑py文本,所以配置vim. 1. 安装完整版vim vi和vim的区别? 在L ...

  2. js中的假值

    undefined null 0 NaN 空字符串

  3. ISD9160学习笔记03_ISD9160音频解码代码分析

    录音例程涉及了录音和播放两大块内容,这篇笔记就先来说说播放,暂且先击破解码这部分功能. 我的锤子便签中有上个月记下的一句话,“斯蒂芬·平克说,写作之难,在于把网状思考,用树状结构,体现在线性展开的语句 ...

  4. 扩展方法以及LinQ的学习

    我们今天学习的内容其实还是蛮多的,学习了自动属性,扩展方法,复习初始化器,以及LinQ的一些方法,其实感觉有些还是很熟悉的,在前面的学习过程中有时间感觉学习的知识知道了怎么使用,但是还没有在项目中使用 ...

  5. React Native 开发工具篇

    正文 概述:开发RN的工具有很多,选择性也比较多,比如Facebook专门为React开发的IDE:Nuclide,还有做前端比较熟悉的WebStorm.Sublime Text 3.VS Code等 ...

  6. Form表单验证神器: BootstrapValidator

    前言:做Web开发的我们,表单验证是再常见不过的需求了.友好的错误提示能增加用户体验.博主搜索bootstrap表单验证,搜到的结果大部分都是文中的主题:bootstrapvalidator.今天就来 ...

  7. php安装xdebug后var_dump输出没有格式化的问题

    开发环境,装了一个xdebug扩展方便调试代码. 但是环境配置好了之后却发现xdebug加载成功了但是var_dump输出的内容却没有使用html格式化 这时想到估计是php.ini里面的某个输出的配 ...

  8. Linux设备驱动剖析之IIC(一)

    写在前面 由于IIC总线只需要两根线就可以完成读写操作,而且通信协议简单,一条总线上可以挂载多个设备,因此被广泛使用.但是IIC总线有一个缺点,就是传输速率比较低.本文基于Linux-2.6.36版本 ...

  9. 【.netcore基础】MVC制器Controller依赖注入

    废话少说,直接上代码 首先我们得有一个接口类和一个实现类,方便后面注入MVC里 接口类 public interface IWeatherProvider { List<WeatherForec ...

  10. 微信小程序插件内页面跳转和参数传递(转)

    在此以插件开发中文章列表跳传文章详情为例. 1.首先在插件中的文章列表页面wxml中绑定跳转事件. bindtap='url' data-id="{{item.article_id}}&qu ...