多窗口处理
"""
1、打开淘宝
2、点击聚划算
3、退回返回淘宝页面
句柄(handler):每一个页面都有一个值,对于页面来说是唯一的,是页面的一个标识
driver:是绑定句柄页面,只能控制绑定的页面
获取当前窗口的句柄:driver.current_window_handle
拿到聚划算的句柄
driver.window_handles----->拿到所有的句柄
"""
from selenium import webdriver
import time
driver =webdriver.Chrome()
driver.get("https://www.taobao.com")
handler1 =driver.current_window_handle
print(handler1)
driver.find_element_by_link_text("聚划算").click()
time.sleep(2)
handler2 =driver.window_handles
driver.switch_to_window(handler2[1])
driver.back()
time.sleep(2)
driver.close()
鼠标事件
"""
鼠标事件
from selenium.webdriver.common.action_chains import ActionChains
常用方法:
perform():执行所有ActionChains中存储的行为
context_click():右击
double_click():双击
drag_and_drop():拖动
move_to_element():鼠标悬停
"""
from selenium import webdriver
import time
from selenium.webdriver.common.action_chains import ActionChains
driver =webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.maximize_window()
webedit =driver.find_element_by_id("kw")
ActionChains(driver).context_click(webedit).perform()
time.sleep(2)
driver.quit()
"""
键盘事件:keys()类提供了键盘上的按键方法
需要导入以下的包:
from selenium.webdriver.common.keys import Keys # 引入模块
label.send_keys("input输入的内容")
label.send_keys(Keys.BACK_SPACE) # 退格键
label.send_keys(Keys.CONTRL,'a') # 全选
label.send_keys(Keys.CONTRL,'v') # 粘贴
label.send_keys(Keys.CONTRL,'c') # 复制
label.send_keys(Keys.CONTRL,'x‘’) # 剪切
label.send_keys(Keys.ENTER) # 回车
键盘事件的案例:
1、百度“seleniumm”
2、删除多输入的m
3、再输入“ 空格 教程”
4、ctrl+a,
5、ctrl+x,
6、ctrl+v,
7、回车代替单机,完成搜索
8、退出浏览器
"""
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
driver =webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.find_element_by_id("kw").send_keys("seleniumm")
time.sleep(1)
driver.find_element_by_id("kw").send_keys(Keys.BACK_SPACE)
time.sleep(1)
driver.find_element_by_id("kw").send_keys(" 教程")
time.sleep(1)
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,"a")
time.sleep(1)
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,"x")
time.sleep(1)
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,"v")
time.sleep(1)
driver.find_element_by_id("kw").send_keys(Keys.ENTER)
time.sleep(1)
driver.quit()
警告框处理
"""
模式窗口:只有你关闭这个窗口,其他操作做不了
非模式窗口:不用关闭窗口,也可以其他操作
警告框——alter:是一个模式框
1、driver对象是一个当前页面窗口内,但是不在alter上,并且没办法定位窗口上的元素
2、driver.switch_to.alter():暂时将driver对象交给alter用
3、可以对alter警告窗口做什么事情:
text:返回(获取)alter/confirm/prompt中的文字信息
accept():接收现有警告框,就是点他的确定按钮
dismiss():放弃现有警告框,取消
send_keys(keysToSend):发送文本至警告框。
"""
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
import time
import selenium.webdriver.support.ui as ui
driver =webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.maximize_window()
Setbutton = driver.find_element_by_xpath("//*[@id='s-usersetting-top']")
ActionChains(driver).move_to_element(Setbutton).perform()
time.sleep(1)
driver.find_element_by_link_text("搜索设置").click()
time.sleep(2)
driver.find_element_by_xpath("//*[@id='nr_3']").click()
driver.find_element_by_link_text("保存设置").click()
time.sleep(2)
dd =driver.switch_to_alert()
time.sleep(2)
tt =dd.text
print(tt)
time.sleep(2)
dd.accept()
time.sleep(2)
driver.quit()