0


Selenium-下拉选择框、弹出框、滚动条操作

Selenium-下拉选择框、弹出框、滚动条操作

1、下拉选择框操作

说明:下拉框就是HTML中<select>元素

1.1 如何操作下拉选择框?

# 导包from selenium import webdriver
from time import sleep
# 获取浏览器驱动对象
driver = webdriver.Firefox()# 最大化浏览器
driver.maximize_window()# 隐式等待
driver.implicitly_wait(30)# 打开url
url =r"D:\web自动化素材\课堂素材\注册A.html"
driver.get(url)"""
    目标: 默认北京A
        暂停2秒
        1. 定位 A上海
        2. 暂停2秒
        3. 定位 A广州
""""""方式1:使用CSS定位"""
sleep(2)# 使用css定位来操作 A上海
driver.find_element_by_css_selector("[value='sh']").click()
sleep(2)# 使用css定位 A广州
driver.find_element_by_css_selector("[value='gz']").click()# 暂停 2
sleep(2)# 关闭驱动对象
driver.quit()========================================# 导包from selenium import webdriver
from time import sleep
# 获取浏览器驱动对象from selenium.webdriver.support.select import Select

driver = webdriver.Firefox()# 最大化浏览器
driver.maximize_window()# 隐式等待
driver.implicitly_wait(30)# 打开url
url =r"D:\web自动化素材\课堂素材\注册A.html"
driver.get(url)"""
    目标: 使用Select类实现操作option选项
    
    需求:
        暂停2秒
        1. 定位 A上海
        2. 暂停2秒
        3. 定位 A广州
        
    步骤:
        1. 导包 Select类
        2. 获取Select对象
            匿名:Select(element).select_by_index() # 通过下标
            实名:select = Select(element)
                调用:select.select_by_index()
    注意:
        1. Select类是通过select标签来控制其下的option元素
        2. element:只能是select标签
""""""方式2:使用Select完成需求"""
el = driver.find_element_by_css_selector("#selectA")
sleep(2)"""通过 下标形式访问"""# 切换 上海# Select(el).select_by_index(1)# sleep(2)# Select(el).select_by_index(2)"""通过 value值形式访问"""# 获取Select引用对象# sel = Select(el)# 切换 上海# sel.select_by_value("sh")# sleep(2)# 切换 广州# sel.select_by_value("gz")"""通过 显示文本切换"""
sleep(2)# 切换 上海
Select(el).select_by_visible_text("A上海")
sleep(2)# 切换广州
Select(el).select_by_visible_text("A广州")# 暂停 2
sleep(2)# 关闭驱动对象
driver.quit()

1.2 Select类

说明:Select类是Selenium为操作select标签特殊封装的。 

实例化对象: select = Select(element)
        element:<select>标签对应的元素,通过元素定位方式获取, 
            例如:driver.find_element_by_id("selectA")

操作方法: 
    1. select_by_index(index)--> 根据option索引来定位,从0开始 
    2. select_by_value(value)--> 根据option属性 value值来定位 
    3. select_by_visible_text(text)--> 根据option显示文本来定位

1.2.1 Select类实现步骤分析

1. 导包 Select类 -->from selenium.webdriver.support.select import Select 
2. 实例化Select类 select = Select(driver.find_element_by_id("selectA"))3. 调用方法:select.select_by_index(index)# 示例代码#导包 from selenium.webdriver.support.select import Select 
select = Select(driver.find_element_by_id("selectA")) 
select.select_by_index(2)# 根据索引实现 
select.select_by_value("sh")# 根据value属性实现 
select.select_by_visible_text("A北京")# 根据文本内容实现

2、弹出框处理

网页中常用的弹出框有三种 
1. alert 警告框 
2. confirm 确认框 
3. prompt 提示框

2.1 案例

需求:打开注册A.html页面,完成以下操作: 
1).点击 alert 按钮 
2).关闭警告框 
3).输入用户名:admin

# 导包from selenium import webdriver
from time import sleep
# 获取浏览器驱动对象
driver = webdriver.Firefox()# 最大化浏览器
driver.maximize_window()# 隐式等待
driver.implicitly_wait(30)# 打开url
url =r"D:\web自动化素材\课堂素材\注册A.html"
driver.get(url)"""
    需求:
        1. 点击 alert按钮
        2. 输入用户名 admin
"""# 定位 alert按钮 并 点击
driver.find_element_by_css_selector("#alerta").click()# 切换 到alert# 默认返回的alert对话框对象
at = driver.switch_to.alert

# 处理 对话框# 同意
at.accept()# 获取文本# print("警告信息:", at.text)# 取消# at.dismiss()# 定位 用户名 输入admin
driver.find_element_by_css_selector("#userA").send_keys("admin")# 暂停 2
sleep(2)# 关闭驱动对象
driver.quit()# 问题1. 按钮被点击后弹出警告框,而接下来输入用户名的语句没有生效 
2. 什么问题导致的?
3. 如何处理警告框?

2.2 弹出框处理方法

说明:Selenium中对处理弹出框的操作,有专用的处理方法;并且处理的方法都一样 

1. 获取弹出框对象 
    alert = driver.switch_to.alert 
2. 调用 
    alert.text --> 返回alert/confirm/prompt中的文字信息 
    alert.accept()--> 接受对话框选项 
    alert.dismiss()--> 取消对话框选项

2.3 示例代码

# 定位alerta按钮 
driver.find_element_by_id("alerta").click()# 获取警告框 
alert = driver.switch_to.alert 
# 打印警告框文本 print(alert.text)# 接受警告框 
alert.accept()# 取消警告框 # alert.dismiss()

3、滚动条操作

滚动条:一种可控制页面显示范围的组件

3.1 为什么要学习滚动条操作?

1. 在HTML页面中,由于前端技术框架的原因,页面元素为动态显示,元素根据滚动条的下拉而被加载 
2. 页面注册同意条款,需要滚动条到最底层,才能点击同意

3.2 实现方式

说明:selenium中并没有直接提供操作滚动条的方法,但是它提供了可执行JavaScript脚本 的方法,所以我们可以通过JavaScript脚本来达到操作滚动条的目的。

1. 设置JavaScript脚本控制滚动条 
    js ="window.scrollTo(0,1000)"(0:左边距;1000:上边距;单位像素)2. selenium调用执行JavaScript脚本的方法 
    driver.execute_script(js)

3.3 案例

# 导包from selenium import webdriver
from time import sleep

# 获取浏览器驱动对象
driver = webdriver.Firefox()# 最大化浏览器
driver.maximize_window()# 隐式等待
driver.implicitly_wait(30)# 打开url
url ="https://www.baidu.com"
driver.get(url)"""
    目标:滚动条操作

    需求:
        1、打开百度,输入csdn并点击百度一下
        1. 启动暂停2秒
        2. 滚动条拉倒最底下
"""

driver.find_element_by_css_selector("#kw").send_keys("csdn")
driver.find_element_by_css_selector("#su").click()

sleep(2)# 第一步 设置js控制滚动条语句
js ="window.scrollTo(0, 10000)"# 第二步 调用执行js语句方法
driver.execute_script(js)# 暂停 2
sleep(2)# 关闭驱动对象
driver.quit()

3.4 滚动条拉到最低和最顶层

# 最底层 
js1 ="window.scrollTo(0,10000)" 
driver.execute_script(js1)# 最顶层 
js2 ="window.scrollTo(0,0)" 
driver.execute_script(js2)

本文转载自: https://blog.csdn.net/weixin_44244493/article/details/126689327
版权归原作者 炫酷的腿毛! 所有, 如有侵权,请联系我们删除。

“Selenium-下拉选择框、弹出框、滚动条操作”的评论:

还没有评论