coding=utf-8
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.action_chains import ActionChains#导入鼠标相关库
from selenium.webdriver.support.ui import Select#导入下拉选项库
driver=webdriver.Chrome()
driver.maximize_window()
driver.get(“http://www.baidu.com”)
sleep(3)
driver.get(“http://www.jd.com”)
1.切换窗口
driver.get(“http://www.baidu.com”)
sleep(3)
win=‘window.open(“http://www.jd.com”)’
driver.execute_script(win)#execute_script执行函数
title=driver.title#还是百度一下,没有选择jd
print title
hande=driver.current_window_handle#获取窗口句柄
print hande
handes=driver.window_handles#获取所有窗口句柄
print handes
for i in handes:
if i != hande:#句柄不是百度时
driver.switch_to.window(i)#选择这个句柄窗口
title=driver.title
print title
2.通过索引的方式获取句柄,选择窗口
driver.get(“http://www.baidu.com”)
sleep(3)
win=‘window.open(“http://www.jd.com”)’
driver.execute_script(win)
hande=driver.current_window_handle#获取窗口句柄
print hande
handes=driver.window_handles#获取所有窗口句柄
print handes
driver.switch_to.window(handes[1])#通过索引的方式切换窗口
title1=driver.title
print title1
#获取窗口大小,关闭窗口,关闭浏览器
driver.get(“http://www.baidu.com”)
driver.implicitly_wait(10)
t=driver.get_window_size()#获取当前窗口大小
print t
win=‘window.open(“http://www.jd.com”)’
driver.execute_script(win)
sleep(3)
driver.close()#关闭当前窗口
driver.quit()#关闭所有浏览器
鼠标悬停
from selenium.webdriver.common.action_chains import ActionChains#导入鼠标相关库
from selenium.webdriver.support.ui import Select#导入下拉选项库
driver.get(“http://www.baidu.com”)
driver.implicitly_wait(10)
a=driver.find_element_by_link_text(“设置”)#将设置按钮属性赋值给A变量
sleep(1)
ActionChains(driver).move_to_element(a).perform()#通过谷歌鼠标放置在属性为:设置 上后进行点击
driver.find_element_by_link_text(“搜索设置”).click()#点击搜索设置
sleep(1)
选择下拉选项
driver.find_element_by_id(“nr”).click()
driver.find_element_by_xpath("//*[@id=‘nr’]/option[3]").click()#通过点击方式选择下拉列表
s=driver.find_element_by_id(“nr”)
Select(s).select_by_index(1)#调用下拉选择库,通过索引位选择具体选项
Select(s).select_by_value(“20”)#调用下拉选择库,通过value值选择具体选项
Select(s).select_by_visible_text(“每页显示50条”)#调用下拉选择库,通过文本选择具体选项
#弹框确认
driver.find_element_by_link_text(“保存设置”).click()
sleep(1)
t=driver.switch_to.alert#选择弹框
# t.accept()#弹框确认
t.dismiss()#弹框取消
‘’’
driver.get(“file:///D:/%E6%B5%8B%E8%AF%95%E5%B7%A5%E7%A8%8B%E5%B8%88/%E8%AF%BE%E4%BB%B6/alert%E5%BC%B9%E6%A1%86.html”)
driver.switch_to.alert.accept()
driver.switch_to.alert.dismiss()#弹框确认
sleep(3)
driver.switch_to.alert.accept()#弹框取消
‘’’
进入iframe框
‘’’
driver.get(“http://www.jd.com”)
driver.implicitly_wait(10)
driver.find_element_by_link_text(“登录”).click()
driver.implicitly_wait(10)
driver.find_element_by_css_selector(".QQ-icon").click()
sleep(2)
iframe=driver.find_element_by_id(“ptlogin_iframe”)#定位iframe框
driver.switch_to.frame(iframe)#切换到iframe框
sleep(1)
driver.find_element_by_css_selector(".img_out_focus").click()
第二种进入iframe框方式
driver.switch_to.frame(0)#通过索引的方式进入iframe框
第三种进入iframe框方式
driver.switch_to.frame(driver.find_element_by_tag_name(“iframe”))
‘’’
driver.get(“http://www.mail.163.com/”)
driver.implicitly_wait(10)
driver.find_element_by_id(“lbNormal”).click()
driver.switch_to.frame(driver.find_element_by_xpath("//*[@id=‘loginDiv’]/iframe[1]"))#进入frame框
sleep(2)
driver.find_element_by_name(“email”).send_keys(“18379432324”)
driver.find_element_by_name(“password”).send_keys(“11210000mm”)
driver.find_element_by_id(“dologin”).click()
driver.switch_to.default_content()#退出frame框
def find_element(locator,*value):
‘’’
封装一个工具函数
:param locator:
:param value:
:return:
‘’’
return driver.find_element_by_id(locator).send_keys(*value)
#每次调用只需传参即可
if name==‘main’:
find_element(“kw”,“python”)#调用普通函数用此两个普通参数
find_element(“kw”,(Keys.CONTROL,“a”))#全选
find_element(“kw”,(Keys.CONTROL,“x”))#剪切
#页面滑动
driver.get(“http:www.jd.com”)
win=‘window.scrollTo(0,1000)’
driver.execute_script(win)
js方法,滚动定位
js1=“var a=document.documentElement.scrollTop=2000”
driver.execute_script(js1)
sleep(3)
js2=“var a=document.documentElement.scrollTop=0”
driver.execute_script(js2)
#while方法定位滚动
‘’’
n=0
while n<5000:
n+=1000
j=“var a=document.documentElement.scrollTop=”+str(n)#字符串拼接不同定位实现滚动
driver.execute_script(j)#执行
sleep(3)#三秒滑动一次
‘’’
#keys类
from selenium.webdriver.common.keys import Keys#导入keys类
driver.get(“http://www.baidu.com”)
driver.find_element_by_id(“kw”).send_keys(“python”)
sleep(2)
driver.find_element_by_id(“kw”).send_keys(Keys.BACK_SPACE)#删除最后一个字符
sleep(2)
driver.find_element_by_id(“kw”).send_keys(Keys.SPACE)
sleep(2)
driver.find_element_by_id(“kw”).send_keys(Keys.ENTER)#回车
sleep(2)
driver.find_element_by_id(“kw”).send_keys(Keys.CONTROL,“a”)#全选
sleep(2)
driver.find_element_by_id(“kw”).send_keys(Keys.CONTROL,“x”)#剪切
sleep(2)
driver.find_element_by_id(“kw”).send_keys(Keys.CONTROL,“v”)#粘贴
sleep(2)
driver.find_element_by_id(“kw”).clear()#清空