selenium之鼠标悬停/警告框处理/多窗口切换/下拉菜单/浏览器滚动条的处理介绍
一.鼠标悬停
代码里要引入ActionChains包,代码如下:
from selenium.webdriver.commom.action_chains import ActionChains
a.ActionChains----悬停类
b.move_to_element()----移动鼠标
c.perform()----让悬停生效
例子:
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.action_chains import ActionChains #引入ActionChains包
dr=webdriver.Chrome()
dr.get("https://www.baidu.com/")
ele=dr.find_element_by_link_text("设置")
ActionChains(dr).move_to_element(ele).perform() #让鼠标悬停在ele上
二.警告框的处理
1.警告框有三种表现形式
a.alert----只有一个确定按钮
b.confirm---有一个确定按钮和一个取消按钮
c.prompt----有一个确定按钮和一个取消按钮,还有一个文本框,需要用到web定位
2.以上三种形式的操作方法如下:
a.switch_to.alert.text----打印弹框的内容
b.switch_to.alert.accept()----接收点击确认
c.switch_to.alert.dismiss()----点击取消
d.switch_to.alert.sendkeys()----输入值,alert/confirm如果没有对话框就不能用了,否则会报错
例子:
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from time import sleep
dr=webdriver.Chrome()
dr.get("https://www.baidu.com/")
ele=dr.find_element_by_link_text("设置")
ActionChains(dr).move_to_element(ele).perform()
sleep(1)
dr.find_element_by_link_text("搜索设置").click()
sleep(1)
dr.find_element_by_link_text("保存设置").click()
sleep(1)
text1=dr.switch_to.alert.text #切换到警告框
print(text1)
dr.switch_to.alert.accept() #点击确定按钮
sleep(1)
dr.quit()
三.下拉菜单的处理方法
通过select 类实现的,首先要导包,代码如下:
from selenuim.webdriver.support.select import Select
1.根据索引位定位----select_by_index()
2.根据value值定位----select_by_value()
3.根据显示的文本值定位----select_by_visible_text()
例子:
from selenium import webdriver
from selenium.webdriver.support.select import Select
dr=webdriver.Chrome()
dr.get("E:\培训\自动化测试学习\selenium\下拉菜单练习.html")
ele=dr.find_element_by_id("s4Id")
Select(ele).select_by_index(2) #根据索引位定位
Select(ele).select_by_value("o1val") #根据value值定位
Select(ele).select_by_visible_text("o3") #根据显示的文本值定位
四.多窗口切换
由默认窗口点击按钮页面跳转到其他窗口时,需要在定位脚本前写如下代码来告诉计算机要切换窗口。
switch_to.window(指定的窗口)----切换到指定窗口
window_handles----获取所有窗口
例子:
from selenium import webdriver
from time import sleep
dr=webdriver.Chrome()
dr.get("https://www.so.com/")
sleep(1)
dr.find_element_by_link_text("360导航").click()
sleep(3)
dr.switch_to.window(dr.window_handles[1]) #切换到第二个窗口
五. 调用Javascript执行浏览器滚动条
0 一般是滚动条的顶部,调用javascript方法来执行滚动条---- .execute_script("window.scrollTo();")
例子:
from selenium import webdriver
from time import sleep
dr=webdriver.Chrome()
dr.get("https://www.taobao.com/")
sleep(3)
dr.execute_script("window.scrollTo(0,3000);") #滑动滚动条
sleep(2)
dr.execute_script("window.scrollTo(0,6000);") #滑动滚动条
sleep(2)
dr.execute_script("window.scrollTo(0,300);") #滑动滚动条