首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
1
《手把手教你》系列基础篇之1-python+ selenium自动化测试-环境搭建(详细)
2
《手把手教你》系列基础篇之2-python+ selenium-打开和关闭浏览器(详细)
3
《手把手教你》系列基础篇之3-python+ selenium自动化测试-驱动浏览器和元素定位大法
4
🔥《手把手教你》系列基础篇之4-python+ selenium自动化测试-xpath使用(详细教程)
5
🔥《手把手教你》系列练习篇之1-python+ selenium自动化测试(详细教程)
6
《手把手教你》系列练习篇之2-python+ selenium自动化测试(详细教程)
7
《手把手教你》系列练习篇之3-python+ selenium自动化测试(详细教程)
8
《手把手教你》系列练习篇之4-python+ selenium自动化测试(详细教程)
9
《手把手教你》系列练习篇之5-python+ selenium自动化测试(详细教程)
10
《手把手教你》系列练习篇之6-python+ selenium自动化测试(详细教程)
11
《手把手教你》系列练习篇之7-python+ selenium自动化测试 -压轴篇(详细教程)
12
《手把手教你》系列练习篇之8-python+ selenium自动化测试 -压台篇(详细教程)
13
《手把手教你》系列练习篇之9-python+ selenium自动化测试 -番外篇 - 最后一波
14
python+ selenium自动化测试 - python基础扫盲
15
python+ selenium自动化测试 - python基础扫盲
16
《手把手教你》系列进阶篇之3-python+ selenium自动化测试 - python几种骚操作你都知道吗?(详细教程)
17
《手把手教你》系列进阶篇之4-python+ selenium自动化测试 - python几种超神操作你都知道吗?(详细教程)
18
《一头扎进》系列之Python+Selenium框架设计篇1- 价值好几K的框架,不看别后悔,过时不候
19
《一头扎进》系列之Python+Selenium框架设计篇2- 价值好几K的框架,不看白不看,看了还想看
20
《一头扎进》系列之Python+Selenium框架设计篇3- 价值好几K的框架,狼来了,狼来了....,狼没来,框架真的来了
21
《一头扎进》系列之Python+Selenium框架实战篇4- 价值好几K的框架,呵!这个框架有点意思啊!!!
22
《一头扎进》系列之Python+Selenium框架设计篇5 - 价值好几K的框架,哎呦!这个框架还真有点料啊!!!
23
《一头扎进》系列之Python+Selenium自动化测试框架实战篇6 - 价值好几K的框架,呦!这个框架还真牛叉哦!!!
24
《一头扎进》系列之Python+Selenium自动化测试框架实战篇7 - 年底了还没升职加薪,年终奖全靠它了!!!
25
《一头扎进》系列之Python+Selenium框架实战篇8 - 年底升职加薪,年终奖就差最后这一步你知道不???

《手把手教你》系列练习篇之6-python+ selenium自动化测试(详细教程)

1. 简介

  前面文章我们了解了如何获取元素的text属性值,和判断元素是否显示在页面(is_displayed()方法),本文我们来学习下,判断一个控件是否被选中状态、获取页面元素的大小、组合键-全选文字、组合键-退格键删除文本和鼠标右键等练习的内容。

2. 验证控件是否被选中

还是以百度首页点击登录后,进入登录界面的“下次自动登录”举例:

由于这个"下次自动登录"是默认被选中状态,我们需要用脚本去判断是否被选中。

相关代码如下:

2.1 代码实现:

2.2 参考代码:

代码语言:javascript
复制
# coding=utf-8?

# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行

# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2019-12-05
@author: 北京-宏哥   QQ交流群:705269076
Project: python+ selenium自动化测试练习篇6
'''

# 3.导入模块
import time
from selenium import webdriver

driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.baidu.com')
driver.implicitly_wait(8)

driver.find_element_by_xpath("//*[@id='u1']/a[7]").click()
time.sleep(1)
driver.find_element_by_xpath(".//*[@id='TANGRAM__PSP_10__footerULoginBtn']").click()
time.sleep(1)
try:
    driver.find_element_by_xpath(".//*[@id='TANGRAM__PSP_10__memberPass']").is_selected()
    print("Test Pass.")
except Exception as e:
    print('Test fail', format(e))

2.3 运行结果:

运行代码后,控制台打印如下图的结果

总结:

元素方法is_selected()返回是是布尔值,用来判断单选或者多选控件是否被选中,或者下拉选择菜单是否选择一个默认的option,都可以通过这个方法去判断。

3. 获取页面元素大小

本文介绍如何通过Selenium方法去获取页面元素的大小。这个场景是可能在需要测试的,例如在前端测试过程中,需要去测试某一个控件是否和设计大小保持一致。

这里用百度首页的“百度一下”这个按钮举例,打印出这个按钮的大小。

相关脚本代码如下:

3.1 代码实现:

3.2 参考代码:

代码语言:javascript
复制
# coding=utf-8?

# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行

# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2019-12-05
@author: 北京-宏哥   QQ交流群:705269076
Project: python+ selenium自动化测试练习篇5
'''

# 3.导入模块
import time
from selenium import webdriver

driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(6)
driver.get("https://www.baidu.com/")
time.sleep(1)
search_btn = driver.find_element_by_id('su')
print (search_btn.size)

3.3 运行结果:

运行代码后,控制台打印如下图的结果

4. 组合键-全选文字

本文开始介绍Selenium中Keys模块下的一些组合,或快捷键的使用。前面的一篇文章,介绍了如何新开一个tab,也是用到这块的知识。

本文介绍全选当前页面文字,快捷键是 Ctrl+a,主要还是用send_keys()方法输入组合键,这里用百度首页举例。

相关脚本代码如下:

4.1 代码实现:

4.2 参考代码:

代码语言:javascript
复制
# coding=utf-8?

# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行

# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2019-12-05
@author: 北京-宏哥   QQ交流群:705269076
Project: python+ selenium自动化测试练习篇5
'''

# 3.导入模块
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys


driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.baidu.com')

element = driver.find_element_by_tag_name('body')
element.send_keys(Keys.CONTROL + 'a')

4.3 运行结果:

运行代码后,控制台打印如下图的结果

4.4 百度首页如下:

百度首页相当于我们按了键盘的组合键(Ctrl + A)

5. 组合键-退格键删除文字

前面一篇文章介绍了,常规清除文本输入框字符的方法clear(), 本文介绍

相关脚本代码如下,这里用百度首页搜索输入框举例:

5.1 代码实现:

5.2 参考代码:

代码语言:javascript
复制
# coding=utf-8?

# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行

# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2019-12-05
@author: 北京-宏哥   QQ交流群:705269076
Project: python+ selenium自动化测试练习篇5
'''

# 3.导入模块
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys


driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.baidu.com')

element = driver.find_element_by_id('kw')
element.send_keys("Selenium automation")
time.sleep(1)
element.send_keys(Keys.CONTROL+'a')
element.send_keys(Keys.BACKSPACE)

5.3 运行结果:

运行代码后,控制台打印如下图的结果

6. 鼠标右键

本文介绍如何使用Selenium中右键方法来操作网页元素。网页上有些元素是支持右键来触发新的菜单,这里找一个百度首页,百度logo的右键,查看图片动作来模拟这个场景。

问题拆分:

1. 打开百度首页,找到logo,右键鼠标

2. 移动到菜单,查看图像,然后点击

核心问题,如何右键操作,然后是如何选择查看图像这个菜单。在Selenium中,有一个ActionChains模块支持,右键,鼠标悬停,拖拽,双击等动作。我们可以通过键盘向下箭头来选择查看图像这个菜单,然后点击就可以达到目的。

相关脚本代码如下:

6.1 代码实现:

6.2 参考代码:

代码语言:javascript
复制
# coding=utf-8?

# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行

# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2019-12-05
@author: 北京-宏哥   QQ交流群:705269076
Project: python+ selenium自动化测试练习篇5
'''

# 3.导入模块
import time
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.keys import Keys


driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.baidu.com')
time.sleep(2)

element = driver.find_element_by_xpath("//*[@id='lg']/img")
actionChains = ActionChains(driver)
actionChains.context_click(element).send_keys(Keys.ARROW_DOWN).send_keys(Keys.ENTER).perform()
#actionChains.context_click(element).send_keys('i').perform()

6.3 运行结果:

运行代码后,控制台打印如下图的结果

注意: ActionChains下相关方法在当前的firefox不工作,这个是一个已知的bug。

7. 小结

好了,今天的练习就到这里,希望大家好好的练习和理解。

下一篇
举报
领券