2024年软件测试最新python+ selenium自动化测试 -压台篇(详细教程)(2),最新软件测试面试合集

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

2.1 示例一:

由于没有找到合适的iframe网站,这里不好用代码举例,简单文字加图片来介绍。但是宏哥辗转反侧的睡不着,最后实在是没招了。于是自己写了一个简陋比较low的网页,利用iframe网页框架,把网页分成上下两个不同iframe控制的页面,把下面html代码保存到

一个记事本,然后修改名称为index.html。

2.2 index.html

iframe test page

用本地浏览器打开如下图:

用firepath来获得百度文本输入框的XPath截图

看到了红圈位置不是显示Top Window,说明你要定位的目标元素在一个iframe里,如果要操作这个元素,首先需要从默认的Top Window,利用switch_to.frame(‘iframeid’)方法来切换到具体的iframe,然后才能去操作目标元素。

正常百度页面,文本输入框截图

方法介绍:

driver.switch_to.frame(“iframe1”)

# 操作目标元素,这个目标元素在 iframe1里面,这里就是百度文本输入框输入文字

driver.switch_to.default_content()

如果有具体项目页面利用了iframe, 自己动手写一下脚本。

2.3 示例二:

步骤:

1.先确认你要操作的元素,是否存在与iframe中,如果元素在iframe中就需要切换

2.找到该iframe

3.切换到该iframe (两种方式)

第一种方式:有三种方法,只是单纯的切换

driver.switch_to.frame(1) #通过index(下标)

driver.switch_to.frame(‘login_frame_qq’) #通过name

driver.switch_to.frame(driver.find_element_by_xpath(‘//iframe[@name=“login_frame_qq”]’)) #通过webelement

第两种方式:既等待元素可见又进行了iframe切换

WebDriverWait(driver,20).until(EC.frame_to_be_available_and_switch_to_it(‘login_frame_qq’))

4.切换完后,就以这个iframe中的html为主html

5.返回默认的html页面,无论现在在那一层的iframe,执行一次即可。

driver.switch_to.default_content()

2.3.1 代码实现:

2.3.2 参考代码:

# coding=utf-8🔥

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

2.注释:包括记录创建时间,创建人,项目名称。

‘’’

Created on 2019-12-09

@author: 北京-宏哥 QQ交流群:705269076

Project: python+ selenium自动化测试练习篇8

‘’’

3.导入模块

import time

from selenium import webdriver

from selenium.webdriver.support.wait import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

driver.maximize_window()

登录腾讯课堂页面

driver.get(‘https://ke.qq.com/course/list’)

点击首页登录

WebDriverWait(driver,20).until(EC.visibility_of_element_located((By.XPATH,‘//a[@id=“js_login”]’)))

driver.find_element_by_id(“js_login”).click()

登录弹窗点击QQ登录

WebDriverWait(driver,20).until(EC.visibility_of_element_located((By.XPATH,‘//a[contains(@class,“btns-enter-qq”)]’)))

driver.find_element_by_xpath(‘//a[contains(@class,“btns-enter-qq”)]’).click()

iframe切换

driver.switch_to.frame(‘login_frame_qq’) #通过name

driver.switch_to.frame(driver.find_element_by_xpath(‘//iframe[@name=“login_frame_qq”]’)) #通过webelement

弹窗点击账户密码登录switcher_plogin

#WebDriverWait(driver,20).until(EC.visibility_of_element_located((By.XPATH,‘//a[@id=“switcher_plogin”]’)))

time.sleep(10)

driver.find_element_by_xpath(‘//a[@id=“switcher_plogin”]’).click()

2.3.3 运行结果:

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

2.3.4 浏览器运行结果:

浏览器的运行过程,宏哥这里就不做屏幕录制了,这个我们看一下结果。浏览器运行结果如下:

3. 处理Alert弹窗

本文来介绍如何通过Selenium方法去处理网页Alert弹窗,和处理iframe类似,都是通过switch_to方法。这里还是没有找到合适的alert弹窗网站,我们就自己创建一个吧,前面文章介绍了如何通过执行JS来增加一个弹窗。

(1)使用switch_to方法先切换到浏览器弹出框

driver.switch_to.alert

(2)Alert类提供了一系列的操作方法

dismiss(): 否

accept(): 是

text(): 获取弹出框里的文本内容

send_keys(): 在弹出框里输入文本

相关脚本代码如下:

3.1 代码实现:

3.2 参考代码:

# coding=utf-8🔥

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

2.注释:包括记录创建时间,创建人,项目名称。

‘’’

Created on 2019-12-09

@author: 北京-宏哥 QQ交流群:705269076

Project: python+ selenium自动化测试练习篇8

‘’’

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)

driver.execute_script(“window.alert(‘这是一个测试Alert弹窗’);”)

time.sleep(2)

driver.switch_to_alert().accept() # 点击弹出里面的确定按钮

#driver.switch_to_alert().dismiss() # 点击弹出上面的X按

3.3 运行结果:

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

注意:

driver.switch_to_alert().accept()

这是一个老方法,在有些编辑器(后面会介绍一款Python的IDE工具)会提示这个方法划横线,说明在最新Selenium在Pyhton支持包里,这个方法被丢弃,虽然还是可以用,现在新的方法是switch_to.alert(),用这个最新方法,我测试了下,无法模拟点击确定和点击关

闭弹窗按钮,所以这个地方选择了旧的方法switch_to_alert()

4. 获取当前页面全部图片信息

本文来介绍下如何获取当前页面全部的图片信息,图片信息可能包括,图片名称,图片大小等。

相关脚本代码如下:

4.1 代码实现:

4.2 参考代码:

# coding=utf-8🔥

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

2.注释:包括记录创建时间,创建人,项目名称。

‘’’

Created on 2019-12-09

@author: 北京-宏哥 QQ交流群:705269076

Project: python+ selenium自动化测试练习篇8

‘’’

3.导入模块

import time

from selenium import webdriver

driver = webdriver.Chrome()

driver.maximize_window()

driver.implicitly_wait(6)

driver.get(“http://news.baidu.com”)

time.sleep(1)

for image in driver.find_elements_by_tag_name(“img”):

print (image.text)

print (image.size)

print (image.tag_name)

4.3 运行结果:

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

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

yMDE4LmNuYmxvZ3MuY29tL2ktYmV0YS8xMjMyODQwLzIwMTkxMi8xMjMyODQwLTIwMTkxMjA5MDkzMjQzMzMxLTIwODMyMjc2NDkucG5n?x-oss-process=image/format,png)

[外链图片转存中…(img-LygDaO2X-1715221531734)]
[外链图片转存中…(img-pbVfb6Ko-1715221531734)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值