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);") #滑动滚动条

posted @ 2018-08-22 19:43  xinxin8109  阅读(505)  评论(0编辑  收藏  举报