selenium3+python自动化2-浏览器基本操作(窗口切换、前进/后退、截屏)

一、多个窗口的切换

以百度为例:打开百度是一个窗口,点击登录》立即注册,就会打开第二个窗口,如何让两个窗口进行切换?

先获取当前打开所有窗口的handles,用到handles=driver.window_handles,此时handles是列表格式

再使用索引,切换到指定的窗口用到driver.switch_to.windows(handles[索引值]),索引值从0开始计算

from selenium import webdriver
from time import sleep
driver=webdriver.Chrome()
driver.get('https://www.baidu.com/')
sleep(1)
#切换窗口
driver.find_element_by_link_text('登录').click()
sleep(2)
driver.find_element_by_link_text('立即注册').click()
sleep(2)
handles=driver.window_handles
# print(type(handle),len(handle))
# driver.switch_to_window(handle[1])此方法不适用
driver.switch_to.window(handles[0])#切换窗口
sleep(1)
driver.quit()

二、自己将8种定位方法函数化与By模块的比较

#自己定义的函数
def findElement(driver,key,value):
    if key=="id":#通过id定位
        element=driver.find_element_by_id(value)
    if key=="calss_name":#通过class定位
        element = driver.find_element_by_calss_name(value)
    if key=="name":#通过name定位
        element = driver.find_element_by_name(value)
    if key=="tag_name":#通过tag定位
        element = driver.find_element_by_tag_name(value)
    if key=="link_text":#通过link定位
        element = driver.find_element_by_link_text(value)
    if key=="xpath":#xpath路径定位
        element = driver.find_element_by_xpath(value)
    if key=="css_selector":#通过css定位
        element = driver.find_element_by_css_selector(value)
    return element
#By和自己写的元素定位方法的区别
from selenium.webdriver.common.by import By
element=driver.find_element(By.ID,'kw')#每次都要重复写driver.find_element(...)
element.send_keys("杨迅")

# from ANN.common_model import *
# element1=findElement(driver,"id","kw")#直接调用函数,简单
# element1.send_keys("yang")

三、浏览器其他的操作,设置窗口大小,前进后退,截屏,直接见代码

from selenium import webdriver
from time import sleep
driver=webdriver.Chrome()
driver.get('https://www.baidu.com/')
sleep(2)
# #浏览器返回上一页
# driver.back()
# sleep(3)
# #浏览器切换到下一页
# driver.forward()
# sleep(2)
# #设置窗口大小
# driver.set_window_size(540,960)
# sleep(1)
# driver.maximize_window()
# sleep(2)
# #截屏
# driver.get_screenshot_as_file(r'F:\截图\b2.png')
posted @ 2020-01-13 18:01  小北鼻  阅读(890)  评论(0编辑  收藏  举报