Python3 Selenium自动化web测试 ==> 第九节 WebDriver高级应用 -- 操作select 和 alert
学习目的:
掌握页面常规元素的定位方法
场景:
网页正常的select元素下拉框常规方法和select专属方法
正式步骤:
step1:常规思路select页面元素定位
处理HTML代码截图
- # -*- coding:utf-8 -*-
- from selenium import webdriver
- import time
- from selenium.webdriver.common.action_chains import ActionChains
- #常规select方法:百度首页设置搜索结果显示条目数
- url = "https://www.baidu.com"
- dr = webdriver.Chrome()
- dr.get(url)
- # dr.find_element_by_link_text('设置').click()
- # dr.find_element_by_class_name("setpref").click()
- # time.sleep(1)
- # dr.find_element_by_xpath('//*[@id="nr"]/option[3]').click()
- #常规方法二:鼠标移动悬浮到设置按钮上点击搜索设置
- mouse = dr.find_element_by_link_text('设置')
- ActionChains(dr).move_to_element(mouse).perform()
- dr.find_element_by_class_name("setpref").click()
- time.sleep(1)
- dr.find_element_by_xpath('//*[@id="nr"]/option[3]').click()
- time.sleep(3)
- dr.close()#close是退出当前窗口,quit是退出整个dr进程
step2:Select专有方法,即selenium内置方法
处理HTML代码截图
解决方案:
- # -*- coding:utf-8 -*-
- from selenium import webdriver
- from selenium.webdriver.common.action_chains import ActionChains
- from selenium.webdriver.support.select import Select
- import time
- url = 'https://www.baidu.com'
- dr = webdriver.Chrome()
- dr.get(url)
- dr.find_element_by_link_text('设置').click()
- dr.find_element_by_class_name("setpref").click()
- time.sleep(1)
- #method_1
- s1 = dr.find_element_by_id('nr')
- Select(s1).select_by_visible_text('每页显示50条')
- time.sleep(3)
- #method_2
- s2 = dr.find_element_by_id('nr')
- Select(s2).select_by_value('')
- time.sleep(3)
- #method_3
- s3 = dr.find_element_by_id('nr')
- Select(s3).select_by_index('')
- time.sleep(1)
- dr.quit()
step3: 处理alert弹出框
处理情景截图,需要点击“确定”按钮,但此按钮无相应的html元素
解决方案:
- # -*- coding:utf-8 -*-
- from selenium import webdriver
- from selenium.webdriver.common.action_chains import ActionChains
- from selenium.webdriver.support.select import Select
- import time
- """
- 如果弹出有弹出框需要你输入内容,那么就要使用定位元素后的send_keys()来输入内容
- 弹出框的确定可以按F12来查看页面元素,如果有对应的HTML元素,则正常定位,但是需要切换句柄才能操作
- """
- url = 'https://www.baidu.com'
- dr = webdriver.Chrome()
- dr.get(url)
- dr.find_element_by_link_text('设置').click()
- dr.find_element_by_class_name("setpref").click()
- time.sleep(1) #此步骤必须加等待时间
- dr.find_element_by_link_text("保存设置").click()
- # time.sleep(1)
- test_alert = dr.switch_to.alert() # 切换到alert
- def alert_display():
- try:
- t = test_alert.text
- print(t)
- return True
- except:
- return False
- if alert_display():
- test_alert.accept() #accept表示点击确定
- test_alert.dismiss()#dismiss表示不接受弹出框
- else:
- print("alert未弹出")
- dr.quit()
难点分析:
初次使用的时候,需要多看内置方法
学习总结:
需要多操作,建立一个常用操作库参考
Python3 Selenium自动化web测试 ==> 第九节 WebDriver高级应用 -- 操作select 和 alert的更多相关文章
- Python3 Selenium自动化web测试 ==> 第八节 WebDriver高级应用 -- 结束Windows中浏览器的进程
学习目的: 掌握WebDriver的高级应用 正式步骤: # -*- coding:utf-8 -*- from selenium import webdriver from selenium.web ...
- Python3 Selenium自动化web测试 ==> 第一节 起始点之Python单元测试框架 unittest
前置步骤 Python版本:3.6.4 selenium版本:3.11.0 >>> import selenium >>> help(selenium) IDE:P ...
- Python3 Selenium自动化web测试 ==> 第二节 页面元素的定位方法 <上>
前置步骤: 上一篇的Python单元测试框架unittest,我认为相当于功能测试测试用例设计中的用例模板,在自动化用例的设计过程中,可以封装一个模板,在新建用例的时候,把需要测试的步骤添加上去即可: ...
- Python3 Selenium自动化web测试 ==> 第二节 页面元素的定位方法 -- iframe专题 <下>
学习目的: 掌握iframe矿建的定位,因为前端的iframe框架页面元素信息,大多时候都会带有动态ID,无法重复定位. 场景: 1. iframe切换 查看iframe 切换iframe 多个ifr ...
- Python3 Selenium自动化web测试 ==> 第七节 WebDriver高级应用 -- 浮动框中,单击选择某个关键字选项
学习目的: 了解WebDriver的高级应用 正式步骤: 测试Python3代码 # -*- coding:utf-8 -*- from selenium import webdriver from ...
- Python3 Selenium自动化web测试 ==> 第六节 WebDriver高级应用 -- 操作web页面的滚动条
学习目的: 掌握页面元素定位以外的其他重要知识点. 正式步骤: 测试Python3代码 # -*- coding:utf-8 -*- from selenium import webdriver fr ...
- Python3 Selenium自动化web测试 ==> 第五节 WebDriver高级应用 -- 使用JavaScript操作页面元素
学习目的: 中级水平技术提升 在WebDriver脚本代码中执行JS代码,可以解决某些 .click()方法无法生效等问题 正式步骤: Python3代码如下 # -*- coding:utf-8 - ...
- Python3 Selenium自动化web测试 ==> 第三节 常用WebDriver API使用示例上(24个API)
前置步骤: 安装selenium,chrome驱动,Python3.6 学习目的: 常见API的使用 涉及的API: step1: 访问一个网址 step2: 网页的前进和后退 step3: 刷新当前 ...
- Python3 Selenium自动化web测试 ==> 第十一节 WebDriver高级应用 -- 显示等待 + 二次封装
学习目的: 掌握显示等待 掌握二次封装 正式步骤: step1:显示等待的代码示例 # -*- coding:utf-8 -*- from selenium import webdriver from ...
随机推荐
- IIS配置web.config 将带www域名转为不带www域名
在configuration节点中添加 <configuration> <system.webServer> <rewrite> <rules> < ...
- Codeforces Round #509 (Div. 2) F. Ray in the tube(思维)
题目链接:http://codeforces.com/contest/1041/problem/F 题意:给出一根无限长的管子,在二维坐标上表示为y1 <= y <= y2,其中 y1 上 ...
- IDEA 安装与破解(亲测有效)
本文转载:https://blog.csdn.net/g_blue_wind/article/details/74380483 根据以下的流程,顺利安装了最新版本的idea企业版. IDEA 全称 I ...
- python中装饰器(语法糖)概念
“”“” 什么是装饰器? """ 还是通过一个例子来慢慢说明 先看下面的例子 def func_1(x): return x*2 def fun_2(x): return ...
- python下vs的使用
part 1:导入pygame包 在python环境下:视图---其他窗口--python环境,选择从pypi安装pygame
- HDU3501 Calculation 2 [欧拉函数]
题目传送门 Calculation 2 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- Python基础之基本数据类型的总结
基本数据类型的总结 1. 按照存储空间的占用分(从低到高) 数字 字符串 集合:无序,即无序存索引相关信息 元组:有序,需要存索引相关信息,不可变 列表:有序,需要存索引相关信息,可变,需要处理数据的 ...
- ARTS打卡计划第十周
Algorithms: https://leetcode-cn.com/problems/next-greater-node-in-linked-list/ 链表中下一个更大的值,双层循环及优化,后面 ...
- Java 标准 IO 流编程一览笔录( 下 )
8.回推流:PushbackInputStream与PushbackReader PushbackInputStream/PushbackReader 用于解析InputStream/Reader内的 ...
- csp-s模拟80(b)
头一次中午考试,上来一看三个题目以为是三个板子,但一看数据范围就不对劲. T1: 考场上的想法是:找出循环节,对于数组一头一尾的不在循环节中的,维护出以某数结尾/开头的上升序列,对于中间的循环部分只取 ...