selenium之鼠标悬停/警告框处理/多窗口切换/下拉菜单的处理的介绍

Posted xyx-001

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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]) #切换到第二个窗口

以上是关于selenium之鼠标悬停/警告框处理/多窗口切换/下拉菜单的处理的介绍的主要内容,如果未能解决你的问题,请参考以下文章

selenium多表单操作与多窗口,以及警告框处理

selenium webdriver从安装到使用(python语言),显示等待和隐性等待用法,切换窗口或者frame,弹框处理,下拉菜单处理,模拟鼠标键盘操作等

自动化测试:Selenium高级操作

selenium学习笔记——高级操作

Selenium - Web自动化测试的基本操作实现

爬虫+自动化利器 selenium 之自学成才篇