点击首页登录

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 运行结果:

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

运行结果:

运行结果,发现没有图片名称打印出来,说明百度新闻页面,所有图片都没有给出text这个属性,前端的妹子没有写图片的text属性。不相信的同学或者小伙伴们可以通过F12查看一下图片是否有text这个属性。

5. 获取页面元素的href属性

本文来介绍如何通过Selenium获取页面元素的某一个属性。一个元素可能有多个属性,例如 class, id, name, text, href, vale等等。这里我们举例一个爬虫中经常需要处理的链接问题:找出当前页面所有的超链接。

已百度首页为例,打印所有包含href的元素的链接。

相关脚本代码如下:

5.1 代码实现:

5.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)

for link in driver.find_elements_by_xpath(“//*[@href]”):

print (link.get_attribute(‘href’))

driver.quit()

5.3 运行结果:

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

这里只是找元素的href属性,如果你需要其它属性,例如你需要查看页面所有元素具有id值的话,你可以这样写: print (link.get_attribute(‘id’))

6. 如何截图并保存

本文介绍如何利用Selenium的方法进行截图,在测试过程中,是有必要截图,特别是遇到错误的时候进行截图。在selenium for python中主要有三个截图方法,我们挑选其中最常用的一种。

get_screenshot_as_file()

相关代码如下:

6.1 代码实现:

6.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.get_screenshot_as_file(“C:\\Users\\你的账户名\\Desktop\\baidu.png”)

driver.quit()

6.3 运行结果:

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

6.4 执行结果:

会在桌面保存一张百度首页的截图,图片后缀是png。注意路径是要两个 \\ 。如下图:

7. 小结

7.1 多个iframe的切换问题

# 如:有两个iframe:f1、f2

1.定位到f1

driver.switch_to_frame(“f1”)

2.操作元素

······

3.退出iframe

driver.switch_to_default_content()

4.定位到f2

driver.switch_to_frame(“f2”)

······

7.2 嵌套:f1中嵌套着f2

driver.switch_to_frame(“f1”)

driver.switch_to_frame(“f2”)

操作元素

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数软件测试工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上软件测试开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)
img

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

大家的负担。**
[外链图片转存中…(img-e3Hjsj9K-1712908430977)]
[外链图片转存中…(img-27mM3fdZ-1712908430978)]
[外链图片转存中…(img-YSofptMx-1712908430978)]
[外链图片转存中…(img-bFTVAMG3-1712908430979)]
[外链图片转存中…(img-WhvTb6ix-1712908430979)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上软件测试开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-uKfLMVqc-1712908430980)]

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

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐