0


基于Selenium+Python的自动化测试

**实验目的和要求 **

(1)了解Selenium+Python环境搭建及配置,能够了解基于Selenium自动化测试的基本原理;

(2)能够理解基于Selenium自动登录网页的过程,对软件自动化测试过程的原理有一定的理解,为今后从事web自动化测试奠定基础。

实验环境、内容和方法

实验环境****

(1)window10操作系统;

(2)python开发环境、Selenium。

内容:

能够安装python,conda及selenium环境,执行简单的自动化web程序。浏览器打开QQ邮箱(或者其他邮箱)登录网址:QQ邮箱登录地址为:https://mail.qq.com/。选择账号密码登录,Selenium的xpath方法定位进入QQ邮箱登录网页,选择元素定位,输入QQ账号和QQ密码,进入写信、发信界面,自动实现邮件发送。

实验过程描述

**1.**准备工作:安装python,conda,Chrome及pycharm

2.

  1. 创建工程项目pythonDemo-01

  2. 打开终端,使用pip安装selenium : pip install selenium

  3. 查看既存环境:conda env list

  4. 1)浏览器打开QQ邮箱登录网址:QQ邮箱登录地址为:https://mail.qq.com/。打开开发者工具,选择账号密码登录,查看写信元素

  5. Pycharm编写代码实现selenium自动化登录

from selenium import webdriver

from selenium.webdriver.common.by import By

from time import sleep

QQEmail = webdriver.Chrome()

设置全局最大等待时长

QQEmail.implicitly_wait(15)

QQEmail.get('https://mail.qq.com/')

iframe切换

QQEmail.switch_to.frame(QQEmail.find_element(By.XPATH, r'//*[@class="QQMailSdkTool_login_loginBox_qq_iframe"]'))

QQEmail.switch_to.frame('ptlogin_iframe')

如果不是密码登录就点密码登录

mm = QQEmail.find_element(By.XPATH, r'//*[@id="switcher_plogin"]')

if mm:

mm.click()

定位账号、密码,并输入

QQEmail.find_element(By.XPATH, r'//*[@id="u"]').send_keys("1538982436@qq.com")

QQEmail.find_element(By.XPATH, r'//*[@id="p"]').send_keys("***********")

定位登录按钮

QQEmail.find_element(By.XPATH, r'//*[@id="login_button"]').click()

退出到最外层HTML

QQEmail.switch_to.default_content()

QQEmail.switch_to.default_content()

定位并点击“写信”

QQEmail.find_element(By.XPATH, r'//*[@id="composebtn"]').click()

进入iframe name="mainFrame"

QQEmail.switch_to.frame('mainFrame')

定位并填写收件人

QQEmail.find_element(By.XPATH, r'//*[@id="toAreaCtrl"]/div[2]/input').send_keys("1507532636@qq.com")

定位并填写主题

QQEmail.find_element(By.XPATH, r'//*[@id="subject"]').send_keys("Hello word!")

进入iframe class="qmEditorIfrmEditArea"

QQEmail.switch_to.frame(QQEmail.find_element(By.XPATH, r'//*[@class="qmEditorIfrmEditArea"]'))

定位并填写正文

QQEmail.find_element(By.XPATH, r'/html/body').send_keys("今天我就要好好学习哈哈!

")

返回到mainframe

QQEmail.switch_to.parent_frame()

定位并发送

QQEmail.find_element(By.XPATH, r'//*[@class="btn_gray btn_space"]').click()

QQEmail.quit()

实验结果及分析

实验结果:

注意事项:

  1. QQEmail.find_element_by_xpath('//[@id="u"]')语法已经废弃,需要使用QQEmail.find_element(By.XPATH, r'//[@id="u"]')
  2. QQ邮箱更新,可能导致一些标签名变换,需要在开发者模式中定位

实验分析:

  1. 代码中使用的是Selenium库的WebDriver模块,通过Chrome浏览器驱动来模拟用户操作。首先创建一个Chrome浏览器实例QQEmail,然后设置全局最大等待时长为15秒,接着访问QQ邮箱登录网址。

  2. 使用switch_to.frame()方法切换到iframe,以便定位和操作网页元素。首先切换到账号密码登录框所在的iframe,然后切换到写信界面所在的iframe。

  3. 判断是否需要切换到密码登录框,如果存在则点击切换。接下来定位账号、密码输入框,并输入相应的QQ账号和密码。

  4. 定位登录按钮,并点击进行登录。登录完成后,退出到最外层的HTML,然后定位并点击“写信”按钮。

  5. 进入写信界面后,定位收件人输入框,并填写收件人的QQ号码。接着定位主题输入框,并填写邮件的主题。

  6. 进入正文编辑区域,定位正文输入框,并填写邮件的正文内容。最后返回到主框架,定位并点击发送按钮,完成邮件发送。

  7. 在实验过程中,需要注意一些语法和标签名的变化。例如,find_element_by_xpath()方法已经被废弃,需要使用find_element(By.XPATH, r'//*[@id="u"]')来代替。此外,由于QQ邮箱更新,可能需要在开发者模式中重新定位某些标签。

标签: 功能测试

本文转载自: https://blog.csdn.net/LITTLE0BOY/article/details/135234034
版权归原作者 JamesGosling写Python 所有, 如有侵权,请联系我们删除。

“基于Selenium+Python的自动化测试”的评论:

还没有评论