Selenium Webdirver API(1)

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()

猜你喜欢

转载自www.cnblogs.com/test-chen/p/10324581.html