Selenium Webdirver API(1)

摘要:
Selenium Webdirector API的先决条件:从Selenium-import webdriver 1导入webdriver包,创建浏览器对象驱动程序=webdriver Ie(executable_path=“D:IEDriverServer”)#对于不同的浏览器,只需更改浏览器名称,如webdriver。Chrome()网络驱动程序。Firefox()2.打开网页getdriver

Selenium Webdirver API

前提:引入webdriver包
from selenium import webdriver

1、创建浏览器对象
driver = webdriver.Ie(executable_path="D:\IEDriverServer")#不同浏览器只需更改浏览器名称即可,如:webdriver.Chrome() webdriver.Firefox()

2、打开网页 get
driver.get("http://www.sogou.com") #打开搜狗首页

3、控制浏览器前后移动 back forward
driver.back() #返回上一个网页
driver.forward() #前进到下一个网页

4、强制刷新当前浏览器 refresh
driver.refresh() #刷新浏览器,会等到刷新完才执行下一句代码

5、设置超时 set_page_load_timeout
driver.set_page_load_timeout(3) #网页加载3秒超时 ,抛出异常
#捕获异常,使用程序能够继续执行下去
try:
driver.get("http://www.sogou.com)
except Exception,e:
print e

6、窗口最大化 maximize_window
driver.maximize_window() #窗口最大化

7、获取当前窗口坐标 get_window_position
driver.get_window_position() #获取当前的坐标
#可以通过key-value方式获取坐标值
driver.get_window_position()["x"]
driver.get_window_position()["y"]

8、设置当前窗口坐标 set_window_position
driver.set_window_position(100,150)

9、获取当前窗口大小 get_window_size()
driver.get_window_size() #获取当前窗口大小
#可通过key_value方法获取宽高值
driver.get_window_size()["width"]
driver.get_window_size()["height"]

10、设置当前窗口大小 set_window_size
driver.set_window_size(100,200)

11、获取浏览器标题
driver.title #标签页名称,可用来断言
driver.get("http://www.sohu.com")
assert u"搜狐" == driver.title

12、获取当前网页源码
driver.page_source #获取当前网页源码,格式为unicode
#如果要保存为中文时,需要进行转码
driver.page_source.encode("gbk","ignore")

13、获取当前网页url地址
driver.current_url #当前网页url

14、切换句柄(获取和切换标签页/窗口) switch_to.window
#获取当前窗口句柄
driver.current_window_handle
#获取浏览器所有打开的句柄
driver.window_handles
#切换句柄
driver.switch_to.window(handle)

代码:
#encoding=utf-8
import unittest
import time
from selenium import webdriver

class VisitSogouByIE(unittest.TestCase):
def setUp(self):
#启动IE浏览器
self.driver = webdriver.Ie(executable_path="D:\IEDriverServer")
def test_operateWindowHandle(self):
url = "http://www.baidu.com"
#打开百度
self.driver.get(url)
#获取当前窗口句柄
now_handle = self.driver.current_window_handle
#打印当前获取的窗口句柄
print now_handle
#百度搜索输入框中输入“w3cschool”
self.driver.find_element_by_id("kw").send_keys("w3cschool")
#点击搜索按钮
self.driver.find_element_by_id("su").click()
#等待3秒,以便网页加载完成
time.sleep(3)
#点击w3cschool在线教程链接
self.driver.find_element_by_xpath("//div[@id='1']/h3/a").click()
time.sleep(5)
#获取所有窗口句柄
all_handles = self.driver.window_handles
print "+++" ,self.driver.window_handles[-1]
#循环遍历所有新打开的窗口句柄,也就是说不包括主窗口
for handle in all_handles:
if handle != now_handle:
#输入待选择的窗口句柄
#self.driver.switch_to_window(handle) #selenium3.x已经不推荐使用该方法
# 切换窗口
self.driver.switch_to.window(handle) #新方法
#点击HTML5链接
self.driver.find_element_by_link_text("HTML5").click()
time.sleep(3)
#关闭当前窗口
self.driver.close()
time.sleep(3)
#打印主窗口句柄
print now_handle
#返回主窗口
self.driver.switch_to.window(now_handle)
time.sleep(2)
self.driver.find_element_by_id("kw").clear()
self.driver.find_element_by_id("kw").send_keys("wow")
self.driver.find_element_by_id("su").click()
time.sleep(5)
def tearDown(self):
self.driver.quit()
if __name__ == "__main__":
unittest.main()

免责声明:文章转载自《Selenium Webdirver API(1)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇安卓学习第24课——viewSwitcherUIViewController的View显示在导航栏下面如何解决?下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Python爬虫学习教程:天猫商品数据爬虫

天猫商品数据爬虫使用教程 下载chrome浏览器 查看chrome浏览器的版本号,下载对应版本号的chromedriver驱动 pip安装下列包 pip install selenium pip install pyquery 登录微博,并通过微博绑定淘宝账号密码 在main中填写chromedriver的绝对路径 在main中填写微博账号密码 1...

Scrapy实战篇(八)之Scrapy对接selenium爬取京东商城商品数据

 本篇目标:我们以爬取京东商城商品数据为例,展示Scrapy框架对接selenium爬取京东商城商品数据。 背景:   京东商城页面为js动态加载页面,直接使用request请求,无法得到我们想要的商品数据,故需要借助于selenium模拟人的行为发起请求,输出源代码,然后解析源代码,得到我们想要的数据。 第一步:设置我们需要提取的字段,也就是在Scrap...

源码剖析——深入Windows句柄本质

参考资料: 1. http://www.codeforge.cn/read/146318/WinDef.h__html windef.h头文件 2. http://www.codeforge.cn/read/146318/WinNT.h__html winnt.h头文件 3. https://msdn.microsoft.com/en-us/library...

后Selenium时代,网页自动化测试用Cypress

本文技术难度★★★,初学自动化测试的朋友慎点!否则会引起焦虑等不适症状,严重者会怀疑自己技术人生! 来自Cypress官网首页! Web开发飞速换代! table控制页面OUT了! 原生态手写网页OUT了! 纯原生态JS写特效OUT了! 但是,司职网页自动化测试的Selenium,几乎没变化! 如果某一天你被告知,Selenium不能用了,网页自动化小伙...

Appium(八):Appium API(二) 元素等待、元素操作

1. 元素等待 我们在使用脚本的时候,可能会由于网络、服务器处理、电脑等原因,我们想要找的元素没有加载出来,这个时候如果直接定位就可能会报错。 这个时候我们就可以设置元素等待了。 什么叫元素等待呢? 就是WebDriver定位页面元素时如果没有找到,就会在指定时间内一直等待的过程。 元素等待一共分为两种类型:显示等待和隐式等待。 1.1 隐式等待 隐式等待...

【基于python实现UI自动化】3.0 selenium

此文转载自:https://blog.csdn.net/lht3347/article/details/108630023#commentBox python-UI自动化之selenium元素定位 1.0 selenium工具介绍 2.0 selenium环境搭建 3.0 selenium元素定位 selenium常见8大元素定位 通过ID定位...