1.对话框操作
1.1alter 提示对话框

定位按钮

driver.find_element_by_id("button1").click()
time.sleep(2)
# 要从网页上 切换到 对话框上
txt = driver.switch_to.alert.text
print(txt)
time.sleep(2)
# 点击对话框的确认按钮
driver.switch_to.alert.accept()

1.2 取消

定位按钮

driver.find_element_by_id("button1").click()
time.sleep(2)
# 要从网页上 切换到 对话框上
txt = driver.switch_to.alert.text
print(txt)
time.sleep(2)
# 点击对话框的取消按钮
driver.switch_to.alert.dismiss()
注:确认对话框多了一个取消按钮dismiss()

1.3 对话框处理

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

# 2.弹出框的处理
    遇到弹出框, 需要从原有页面切换至弹出上, 再进行操作.

# 3.常用方法:
    obj.text  # 获取弹出框文本
    obj.accept()  # 确定
    obj.dismiss()  # 取消
  1. frame嵌套
    默认我们可以在一个页面中 展示另外一个页面的内容,这个需要借助于框架标签iframe 来实现

    主页

主页中就展示了两个其他的页面,一个是首页、一个是新闻页

这个时候吗,如果我们想直接定位 首页中的 元素是拿不到的。

如何拿到呢?

driver.get("http://127.0.0.1:8020/Day01/home.html")

切换到某个frame中 这里切换可以根据 下标 id name等等

driver.switch_to.frame(0)

我们切换到frame这个框架 后 就可以直接 通过driver来定位 该frame中的元素

driver.find_element_by_id("username").send_keys("张三")

2.1 从主页 切换到子页1

driver.get("http://127.0.0.1:8020/Day01/home.html")

driver.switch_to.frame("iframe1")

我们切换到frame这个框架 后 就可以直接 通过driver来定位 该frame中的元素

driver.find_element_by_id("username").send_keys("张三")

2.2 从子页1切到子页2
默认是不能从一个子页 切换到另外一个子页的,需要先从子页退出到主页,在从主页切换到其他子页

退出 frame 回到主页

driver.switch_to.default_content()

切换到第2个子页

driver.switch_to.frame("iframe2")
t = driver.find_element_by_id("h11").text
print(t)
  1. 窗口切换
    3.1. 介绍
    我们一个浏览器 可以有多个窗口,我们可以实现多window窗口切换。

我们的每一个窗口都有一个唯一的标识,可以通过标识来找到该窗口。

我们称这个标识为 句柄。

常用方法:

(1).说明:在Selenium中封装了获取当前窗口句柄、获取所有窗口句柄和切换到指定句柄窗口的方法; 句柄:英文handle,窗口的唯一识别码
(2).实现方法:
    1).driver.current_window_handle  ---> 获取当前窗口句柄
    2).driver.window_handles  ---> 获取所有窗口句柄 
        3).driver.switch_to.window(handle)  ---> 切换指定句柄窗口

3.2.案例
如果我们从窗口1 超链接打开了窗口2

则句柄默认不会自动切换到窗口2,需要我们手动切换

# 定位北京超链接

driver.find_element_by_id("beijing").click()
# 切换句柄 到 我们的beijing窗口
driver.switch_to.window(driver.window_handles[1])

同意道理,从窗口2 打开了窗口3 ,则句柄也要响应的代码切换

driver.find_element_by_id("baidu").click()\
# 切换到 百度窗口
driver.switch_to.window(driver.window_handles[2])

4.下拉框
4.1 下拉框处理

# 1.操作方法: 
    (1).select_by_index(index) --> 根据option索引来定位,从0开始 
    (2).select_by_value(value) --> 根据option属性value值来定位 
    (3).select_by_visible_text(text) --> 根据option显示文本来定位 
# 2.示例代码:
# 导包 
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北京") # 根据文本内容实现
  1. 滚动条处理

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

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

    2.实现方式

    (1).说明:selenium中并没有直接提供操作滚动条的方法,但是它提供了可执行JavaScript脚本
    的方法,所以我们可以通过JavaScript脚本来达到操作滚动条的目的。
    (2).设置JavaScript脚本控制滚动条
    js = "window.scrollTo(0,1000)"
    (0:左边距;1000:上边距;单位像素)

最后修改:2021 年 09 月 18 日
如果觉得我的文章对你有用,请随意赞赏