Selenium
- 使浏览器兼容性测试自动化成为可能,但是在不同的浏览器上依然有细微的差别
- 测试浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。
- 测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。
- 框架底层使用JavaScript模拟真实用户对浏览器进行操作。测试脚本执行时,浏览器自动按照脚本代码做出点击,输入,打开,验证等操作,就像真实用户所做的一样,从终端用户的角度测试应用程序。
- 使用简单,可使用Java,Python等多种语言编写用例脚本。
自动化发送163邮件
import time
import datetime
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
def login(user, pwd):
""" 登录163邮箱 """
time.sleep(1)
wait.until(EC.presence_of_element_located((By.ID, 'switchAccountLogin'))).click()
time.sleep(3)
iframe = driver.find_elements_by_tag_name('iframe')
'''
[
<selenium.webdriver.remote.webelement.WebElement (session="3f92dbd96e72746e7d27d64e6b412318", element="0.855888743369456-2")>,
<selenium.webdriver.remote.webelement.WebElement (session="3f92dbd96e72746e7d27d64e6b412318", element="0.855888743369456-3")>,
<selenium.webdriver.remote.webelement.WebElement (session="3f92dbd96e72746e7d27d64e6b412318", element="0.855888743369456-4")>,
<selenium.webdriver.remote.webelement.WebElement (session="3f92dbd96e72746e7d27d64e6b412318", element="0.855888743369456-5")>
]
'''
driver.switch_to.frame(iframe[0])
time.sleep(1)
driver.find_element_by_class_name('dlemail').send_keys(user)
time.sleep(2)
driver.find_element_by_class_name('dlpwd').send_keys(pwd)
time.sleep(2)
driver.find_element_by_id('dologin').click()
def send_mail():
""" 发送163邮件,需要传递163的用户名和密码,收件人和内容 """
try:
login(user, pwd)
wait.until(EC.presence_of_element_located((By.ID, '_mail_component_24_24'))).click()
time.sleep(1)
wait.until(EC.presence_of_element_located((By.CLASS_NAME, 'nui-editableAddr-ipt'))).send_keys(addr)
time.sleep(2)
title = driver.find_elements_by_class_name('nui-ipt-input')
title[2].send_keys(theme)
time.sleep(1)
content_iframe = driver.find_element_by_class_name('APP-editor-iframe')
driver.switch_to.frame(content_iframe)
nui_scroll = wait.until(EC.presence_of_element_located((By.CLASS_NAME, 'nui-scroll')))
nui_scroll.send_keys(content)
time.sleep(1)
driver.switch_to.default_content()
time.sleep(1)
driver.find_elements_by_class_name('nui-btn-text')[2].click()
finally:
time.sleep(3)
driver.quit()
if __name__ == '__main__':
from getpass import getpass
user = input("邮箱: ").strip()
pwd = getpass('密码: ')
driver = webdriver.Chrome()
wait = WebDriverWait(driver, 10)
driver.get('https://mail.163.com/')
addr = "1206180814@qq.com"
theme = '我是你爸爸'
content = '天不生我李淳罡,剑道万古如长夜 ————\n{}'.format(datetime.datetime.now())
send_mail()
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Linux系统下SQL Server数据库镜像配置全流程详解
· 现代计算机视觉入门之:什么是视频
· 你所不知道的 C/C++ 宏知识
· 不到万不得已,千万不要去外包
· C# WebAPI 插件热插拔(持续更新中)
· 会议真的有必要吗?我们产品开发9年了,但从来没开过会
· 【译】我们最喜欢的2024年的 Visual Studio 新功能
· 如何打造一个高并发系统?