本文概述
- 什么是Selenium?
- 为什么我们使用Selenium进行自动化测试?
- 什么是Python?
- 为什么Python对自动化测试有用?
- Selenium与Python
- 在Eclipse中配置PyDev
- 编写并执行Selenium测试脚本
在本教程中, 我们将学习如何使用Python编程语言运行Selenium测试脚本。
在继续本教程之前, 首先, 我们将了解一些要点, 这些要点将帮助我们在Python中实现测试脚本。
- 什么是Selenium?
- 为什么我们使用Selenium进行自动化测试?
- 什么是Python?
- 为什么Python对自动化测试有用?
- Selenium与Python
- 使用Python配置Selenium
- 在Eclipse中配置PyDev
什么是Selenium?
Selenium是一个开放源代码测试工具, 这意味着可以从互联网上下载它而无需花费任何精力。Selenium是一种功能测试工具, 也与非功能测试工具兼容。
有关Selenium的更多信息, 请参见以下链接:https://www.srcmini02.com/selenium-tutorial
为什么我们使用Selenium进行自动化测试?
Selenium是最受欢迎的自动化测试工具之一。在这里, 自动化测试是使用诸如Selenium之类的自动化工具将任何手动测试用例转换为测试脚本的过程。
以下是我们偏爱Selenium进行自动化测试的一些方面:
- Selenium测试脚本可以用Java, Python, C#, Ruby, Perl等任何编程语言编写。
- Selenium测试脚本可以在许多操作系统平台上执行, 例如Windows, Mac, Linux等。
- 测试脚本可以在不同的浏览器上实现, 例如Google Chrome, Mozilla Firefox, Internet Explorer, Safari等。
- Selenium测试工具可以与其他测试工具(例如TestNG, Junit)关联, 以管理测试用例并生成测试报告。
- 为了实现连续测试, Selenium与Maven, Jenkins和Docker测试工具集成在一起。
什么是Python?
- Python支持面向对象编程方法来建立应用程序。它简单易学, 并提供了许多高级数据结构。它是一种开源语言。
- 它是高级和解释器脚本编程语言。
- Python使开发和调试快速进行, 因为Python开发中不包含编译步骤。
有关Python语言的更多详细信息, 请参见以下链接:https://www.srcmini02.com/Python-tutorial
为什么Python对自动化测试有用?
- Python对于自动化测试非常有用, 因为它支持多种编程模式。
- Python具有许多内置的测试框架, 例如Pytest和Robot, 涵盖了调试和更快的工作流程。
- 它是一种解释型语言, 意味着解释器一次可以逐行实现代码, 从而使调试变得容易。
- Python是跨平台语言;这就是为什么它可以在Windows, Linux, UNIX和Macintosh等不同平台上运行的原因,
- 可以使用其他编程语言(如C, C ++, JAVA等)轻松实现Python。
Selenium与Python
有两种方法可以借助Python运行Selenium测试脚本:
- 使用Python配置Selenium
- 在Eclipse中配置PyDev。
让我们看看如何借助Python编程语言配置Selenium:
使用Python配置Selenium
使用Python配置Selenium的步骤如下:
- 在Windows上下载并安装Python
- 在Python中安装Selenium库
- 下载并安装PyCharm
- 创建一个新项目并编写Selenium测试脚本
- 运行并验证测试脚本。
下载并安装适用于Windows的Python
在本节中, 我们将了解如何下载和安装适用于Windows平台的Python。
下载Python
要下载适用于Windows平台的最新版本的Python, 请参考以下链接:https://www.Python.org/downloads/
- 单击上面的链接后, 将显示最新的Release版本列表, 我们单击了Python 3.8.1版本, 如下面的屏幕截图所示:
- 屏幕上将显示Python-3.8.1版本窗口, 然后滚动一点页面并找到File部分, 然后单击Windows操作系统的Windows x86-64基于Web的安装程序链接, 如我们所见在以下屏幕截图中:
安装Python
下载适用于Windows-64位的Python之后, 我们将准备安装Python。
要安装Python, 请执行以下过程:
- 双击下载的可执行文件后, 将在屏幕上显示Python 3.8.1(64位)设置窗口, 其中有两个可用的安装Python的选项, 分别是:
- 现在安装
- 定制安装
- 我们将单击Customize安装, 然后选择Add Python 3.8 to path复选框, 如下图所示:
- 之后, 单击自定义安装, “可选功能”将出现在屏幕上, 我们可以根据需要选择和取消选择功能。
- 然后, 单击下一步按钮, 继续进行操作, 如下图所示:
- 一次, 我们单击下一步按钮。我们有可用的高级选项列表, 我们可以在其中根据需要选择选项, 并确保已选择”为所有用户安装”。
- 我们还可以根据需要通过单击浏览自定义安装位置。
- 之后, 单击”安装”按钮, 以安装Python, 如下面的屏幕截图所示:
- 单击”安装”按钮后, 安装过程即开始, 如下面的屏幕截图所示:
- 安装完成后, 我们将收到安装成功的确认消息, 这意味着Windows操作系统已成功安装Python。
- 然后, 单击”关闭”按钮, 关闭设置窗口, 如下面的屏幕截图所示:
之后, 我们将检查Python是否已成功安装并且工作正常。
因此, 为此, 我们将打开命令提示符, 并将命令键入为Python并按Enter键, 这将打开Python解释器外壳, 在其中可以实现Python程序, 如下图所示:
在Python中安装Selenium库
在我们的操作系统中成功安装Python之后, 我们将安装Selenium库。
为此, 我们将在命令提示符下执行以下命令:
Python -m pip install -U Selenium
并且, 此命令将成功安装最新的Selenium软件包, 即添加到库中的Selenium -3.141.0, 如下图所示:
执行完上述命令后, 它将自动创建具有所有Selenium库的Selenium文件夹, 如下面的屏幕截图所示:
下载并安装PyCharm
一旦我们将Selenium库成功安装到Python中, 就可以下载PyCharm的Python IDE。
要下载PyCharm, 请执行以下过程:
- 请参考以下链接, 下载PyCharm https://www.jetbrains.com/pycharm/download/#section=windows
- 单击上面的链接后, 我们将获得以下窗口, 在该窗口中, 单击Windows的”社区”部分下的”下载”按钮。
- 之后, 双击可执行文件以安装PyCharm, 然后PyCharm Community Edition安装程序窗口将出现在屏幕上, 单击下一步按钮以继续进行操作, 如下图所示:
- 在下一步中, 我们可以通过单击浏览器按钮选择安装位置, 然后单击下一步按钮以进行进一步处理。
- 在下一步中, 我们提供了一些安装选项, 我们可以根据需要选择它们。
- 之后, 单击”下一步”按钮, 如下图所示:
- 然后, 单击”安装”按钮以安装PyCharm, 如下面的屏幕截图所示:
- 如下图所示, 安装过程正在开始。
- 然后, 单击”完成”按钮以完成安装过程, 如下图所示:
创建一个新项目并编写Selenium测试脚本
成功安装PyCharm之后, 我们将打开PyCharm IDE来创建新项目。
在PyCharm中创建一个新项目
请按照以下过程在PyCharm中创建一个新项目:
- 首先, 双击打开PyCharm, 然后单击创建新项目, 如下图所示:
- 之后, 我们将提供项目名称为SeleniumTest, 然后单击”创建”按钮, 如下图所示:
- 单击创建按钮后, 我们将显示以下窗口:
添加Selenium测试脚本
要在PyCharm中添加Selenium测试脚本, 请遵循以下过程:
- 右键单击SeleniumTest项目, 然后转到”新建”, 我们可以根据需要在给定列表中添加任何选项。
- 但是, 我们在这里添加了Python文件, 为此, 我们将添加目录, 该目录可帮助我们单独管理它们, 如下面的屏幕快照所示:
- 并且, 提供目录名称, 在本例中, 我们将其命名为Demo
- 之后, 按Enter键, 如下面的屏幕截图所示:
- 创建目录后, 我们将在演示目录上单击鼠标右键, 然后转到”新建”, 然后从弹出菜单中选择” Python文件”, 如下图所示:
演示→新建→Python文件
- 并且, 我们为python文件提供了一个名称为Sample1。
- 然后, 按Enter键, 如下图所示:
- 之后, 我们获得了IDE, 可以在其中创建或编写Selenium测试脚本。
编写Selenium测试脚本
为了进行测试, 我们将首先转到Google主页, 然后从那里搜索srcmini。
我们正在逐步创建示例测试脚本, 以使你全面了解如何用Python编程语言编写Selenium测试脚本。
为此, 请按照以下步骤操作:
Steps | Actions | Input | Expected Result |
---|---|---|---|
1. | 从Selenium导入WebDriver。 | WebDriver应该被导入。 | |
2. | 打开谷歌浏览器。 | 应该打开Google Chrome浏览器。 | |
3. | 最大化浏览器窗口。 | 浏览器窗口应最大化。 | |
4. | 导航到Google主页。 | https://www.google.com/ | 必须显示Google主页。 |
5. | 识别Google搜索文本框并传递值。 | srcmini | 该值应在搜索文本框中输入。 |
6. | 点击Google搜索按钮。 | 应该点击Google搜索按钮。 | |
7. | 关闭浏览器。 | 浏览器应关闭。 |
步骤1
第一步, 我们将键入以下语句以导入Web驱动程序:
from selenium import webdriver
第2步
之后, 我们将打开Google Chrome浏览器。
如下面的屏幕快照所示, 我们提供了多种类型的浏览器选项, 并且可以从列表中选择任何浏览器, 例如Chrome, Edge, firefox, Internet Explorer, Opera, safari等。
以下是打开Google Chrome浏览器的示例代码:
driver = webdriver.Chrome()
第三步
下一步, 我们将最大化浏览器窗口的大小, 示例代码如下:
driver.maximize_window()
步骤4
然后, 我们将导航到给定的URL。
示例代码如下:
driver.get("https://www.google.com/")
注意:我们知道Python是一种非常容易编写代码的语言, 因为我们不必像编写Java那样编写多个语句。或者, 如果要注释掉某些内容, 我们只需在语句中放入一个井号[#], 或者我们可以直接从键盘上按Ctrl +正斜杠[/]。
步骤5
在此步骤中, 我们试图借助其”名称”属性值找到Google搜索文本框。
- 右键单击Google搜索文本框, 然后在弹出菜单中选择”检查”选项, 如下图所示:
- 将启动开发者工具窗口, 其中包含开发Google搜索文本框时使用的所有特定代码。
- 然后, 复制其Name属性的值, 即” q”, 如下图所示:
这里是示例代码:
driver.find_element_by_name("q").send_keys("srcmini")
步骤6
识别Google搜索文本框后, 我们将识别Google搜索按钮。
因此, 请遵循以下过程:
- 右键单击Google搜索按钮, 然后从给定的弹出菜单中选择”检查”选项, 如下图所示:
- 将启动开发人员工具窗口, 其中包含在开发Google搜索按钮时使用的所有特定代码。
- 然后, 复制其名称属性的值” btnK”, 如下图所示:
并且, 示例代码如下:
driver.find_element_by_name("btnK").send_keys(Keys.ENTER)
步骤7
在最后一步, 我们将关闭浏览器。
并且, 用于关闭浏览器的示例代码如下:
driver.close()
完成上述所有步骤后, 我们的最终测试脚本将如下所示:
from Selenium import webdriver
import time
from Selenium.webdriver.common.keys import Keys
print("sample test case started")
driver = webdriver.Chrome()
#driver=webdriver.firefox()
#driver=webdriver.ie()
#maximize the window size
driver.maximize_window()
#navigate to the url
driver.get("https://www.google.com/")
#identify the Google search text box and enter the value
driver.find_element_by_name("q").send_keys("srcmini")
time.sleep(3)
#click on the Google search button
driver.find_element_by_name("btnK").send_keys(Keys.ENTER)
time.sleep(3)
#close the browser
driver.close()
print("sample test case successfully completed")
注意:导入时间:时间是Python模块, 用于处理与时间有关的任务, 例如time.sleep()。
从Selenium.webdriver.common.keys导入密钥:
在这里, 我们从Selenium中添加了Keys库, 就像上面的代码一样, 我们使用Enter键而不是click()方法来执行特定的场景。
运行并验证测试脚本
编写完Selenium测试脚本后, 我们将运行我们的测试脚本。
在这里, 我们将以两种方式运行测试脚本:
- 在Python IDE中运行
- 在命令提示符下运行
在Python IDE中运行
因此, 首先, 我们将了解如何在Python IDE中运行Selenium测试脚本。
- 右键单击代码, 然后从弹出菜单中选择Run’Sample1′, 如下图所示:
- 当我们运行此脚本时, 它将产生异常, 因为我们没有下图所示的Chrome驱动程序可执行文件:
为克服此异常, 我们将从以下链接下载chrome驱动程序可执行文件:https://chromedriver.storage.googleapis.com/index.html?path=79.0.3945.36/
- 单击上面的链接后, 将基于我们的操作系统平台单击zip文件。就像我们拥有Windows平台一样, 这就是为什么我们单击压缩文件以下载可执行文件的原因, 如下面的屏幕截图所示:
- 下载exe文件后, 我们可以将此文件粘贴到Python文件夹中并解压缩。
- 然后, 我们将在Python IDE中再创建一个称为库的文件夹作为Browsers。
- 右键单击Project(SeleniumTest)→New→Directory, 如下面的屏幕快照所示:
- 并且, 我们将所有驱动程序的可执行文件手动添加到Browsers文件夹中。
- 为此, 我们将复制Python文件夹中的chrome驱动程序exe文件, 并粘贴到Browser文件夹中, 如下图所示:
- 现在转到PyCharm IDE, 复制chromdriver.exe文件的绝对路径, 如下面的屏幕快照所示:
- 将语句” driver = webdriver.Chrome()”替换为以下给出的语句:
driver=webdriver.Chrome(r"C:\Users\JTP\PycharmProjects\SeleniumTest\Browsers\chromedriver.exe")
注意:在这里, 我们将使用” r”克服Unicode错误。
正如我们在下面的屏幕截图中所看到的, 如果我们不将r放入代码中, 它将生成语法错误。
- 之后, 我们将再次运行sample1, 它将成功执行代码, 如下图所示:
上面的测试脚本将启动Google Chrome浏览器并自动执行所有测试方案。
在命令提示符下运行
要在命令提示符下运行上述测试脚本, 请按照以下过程操作:
- 复制Sample1.py文件的位置, 如下图所示:
- 并粘贴命令提示符, 首先转到特定文件夹, 然后输入以下命令:
Python Sample1.py - 然后, 按Enter键, 正如我们在下面的屏幕快照中看到的那样, 示例测试用例一直处于启动状态。
- 在自动完成所有方案之后, 它将作为成功完成的示例测试案例显示消息。
在Eclipse中配置PyDev
这是使用Python执行Selenium测试脚本的另一种方法。
在本节中, 我们将在Eclipse中安装PyDev, 然后在其上实现Selenium测试脚本。
- 安装PyDev
- 使用Python执行Selenium测试脚本。
安装PyDev
要在Eclipse中安装PyDev, 请执行以下过程:
- PyDev安装
- 设定偏好
- 创建一个新项目
- 创建一个新包
- 创建一个PyDev模块
PyDev安装
在开始在Eclipse中安装PyDev之前, 请确保我们已经安装了最新版本的Eclipse IDE。
- 双击Eclipse IDE软件。
- 然后, 转到工具栏中的”帮助”, 然后在给定的弹出菜单中选择” Eclipse Marketplace”选项, 如下面的屏幕快照所示:
- Eclipse Marketplace窗口将打开, 在搜索区域中, 我们将键入PyDev并按Enter
- 然后, 单击”安装”按钮, 如下面的屏幕截图所示:
- 一旦我们点击安装按钮;它将开始安装过程, 然后单击”确认”按钮以进行进一步的过程, 如下面的过程所示:
- 然后, 选择我接受许可协议的条款选项, 然后单击完成按钮以完成安装过程, 如下图所示:
- 安装完成后, 请重新启动Eclipse IDE, 如下图所示:
- 之后, 我们将根据需求设置使用Python项目的首选项。
设置首选项
要设置首选项, 请按照以下过程操作:
- 转到Eclipse Ide工具栏上的Window选项, 然后在给定列表中选择Preference选项, 如下图所示:
- 首选项窗口将打开, 我们将在其中展开PyDev, 然后再次展开解释器, 并从给定列表中选择Python解释器。单击浏览Python / pypy.exe选项, 如下图所示:
PyDev→解释器→Python解释器
- 一旦单击Browse for Python / pypy.exe, 我们将提供Python的解释器名称和可执行文件路径。
- 为此, 在”选择解释器”弹出窗口中, 单击”浏览”按钮, 然后在我们的本地系统中浏览Python的可执行文件路径, 然后单击”确定”按钮, 如下图所示:
- 之后, 单击全选按钮, 然后单击确定按钮以选择文件夹, 如下面的屏幕截图所示:
- 然后, 单击”应用并关闭”按钮, 以完成设置首选项过程, 如下面的屏幕截图所示:
- 成功设置首选项后, 我们将使用Python创建一个新项目。
创建一个新项目
要创建一个新项目, 请按照以下步骤操作:
- 转到文件菜单, 然后转到新建, 然后在弹出菜单中选择其他选项, 如下图所示:
文件→新建→其他
- 一旦选择了其他选项, 将打开[新建]窗口, 我们将在其中展开PyDev并选择PyDev Project, 然后单击下一步按钮, 如下图所示:
- 一旦我们单击下一步按钮;我们将提供项目名称, 然后单击完成按钮, 如下图所示:
- 如下图所示, Python项目是在Eclipse中创建的:
- 完成创建Python项目后, 我们将创建一个新的Python包。
创建一个新包
请按照以下过程创建一个新程序包:
- 右键单击新创建的项目(SeleniumTest), 转到New, 然后在给定的Popup菜单中选择PyDev Package, 如下图所示:
- 然后提供PyDev软件包的名称, 然后单击完成按钮, 如下图所示:
- 正如我们在下面的屏幕截图中看到的那样, 新包已创建。
创建PyDev程序包后, 我们将创建一个PyDev模块。
创建一个PyDev模块
要创建PyDev模块, 请执行以下过程:
- 右键单击新创建的Package [Demo], 然后转到New并从给定列表中选择PyDev Module, 如下面的屏幕快照所示:
演示→新增→PyDev模块
- 然后给PyDev模块名称[Test], 然后单击Finish按钮, 我们可以在下面的屏幕截图中观察到:
- 之后, 我们将从给定列表中选择Empty模板, 然后单击OK按钮, 如下图所示:
- 创建完Python模型之后, 就可以编写和执行Selenium测试脚本了。
编写并执行Selenium测试脚本
编写Selenium测试脚本
为了进行测试, 我们将在Gmail应用程序上执行登录测试。
在此测试中, 我们将自动执行以下测试方案:
Steps | Actions | Input | 预期结果 |
---|---|---|---|
1. | 从Selenium导入Web驱动程序。 | Web驱动程序应导入。 | |
2. | 打开谷歌浏览器。 | 应该打开Google Chrome浏览器。 | |
3. | 最大化浏览器并删除所有cookie | 应最大化浏览器, 并删除cookie。 | |
4. | 导航到主页Gmail应用程序。 | https://www.gmail.com | 必须显示Gmail主页。 |
5. | 标识用户名文本框并传递值。 | xyz11@gmail.com | 应标识用户名文本框, 并在用户名文本框中输入值。 |
6. | 单击下一步按钮。 | 下一个按钮应该被点击。 | |
7. | 标识密码文本框并传递值。 | ####### | 应该标识密码文本框, 并在”密码”文本框中输入值。 |
8. | 单击下一步按钮。 | 下一个按钮应该被点击。 | |
9. | 关闭浏览器。 | 浏览器应关闭。 |
请按照以下步骤操作:
步骤1
第一步, 我们将在以下语句的帮助下导入Web驱动程序:
from selenium import webdriver
第2步
之后, 我们将打开Google Chrome浏览器。
- 要启动Google Chrome或任何其他浏览器(例如Firefox等), 我们需要从给定的链接下载Chrome驱动程序的可执行文件:https://sites.google.com/a/chromium.org/ chromedriver /下载
- 然后, 将下载的exe文件粘贴到Python包(演示)中, 以克服异常, 如下面的屏幕截图所示:
示例代码如下:
#open Google Chrome browser
driver = webdriver.Chrome()
第三步
在下一步中, 我们最大化并删除浏览器窗口的所有cookie。
这里是示例代码:
#maximize the window size
driver.maximize_window()
#delete the cookies
driver.delete_all_cookies()
步骤4
在此步骤中, 我们将导航到Gmail应用程序URL。
示例代码如下:
#navigate to the url
driver.get("https://www.gmail.com")
步骤5
导航到Gmail应用程序的URL后, 我们将识别用户名文本框并传递其值。
要标识用户名文本框, 请按照以下过程操作:
- 右键单击用户名文本框。
- 然后在给定的弹出菜单中选择”检查”选项, 如下面的屏幕截图所示:
- 将打开开发人员工具窗口, 其中包含在用户名文本框的开发中使用的所有特定代码。
- 然后, 复制其id属性的值:identifierId, 如下图所示:
- 并且, 这里是示例代码:
#identify the user name text box and enter the value
driver.find_element_by_id("identifierId").send_keys("xyz11@gmail.com")
time.sleep(2)
步骤6
在此步骤中, 我们将确定”下一步”按钮, 然后单击它。
要确定下一步按钮, 请按照以下过程操作:
- 右键单击下一个按钮, 然后在给定的弹出菜单中单击”检查”选项, 如下图所示:
- 将打开开发人员工具窗口, 其中包含在Next开发中使用的所有特定代码。
- 然后, 从chropath部分复制其绝对XPath的值:// span [@ class =’RveJvd snByac’], 如下图所示:
- 这里是示例代码:
#click on the next button
driver.find_element_by_xpath("//span[@class='RveJvd snByac'][1]").click()
time.sleep(3)
步骤7
在此步骤中, 我们将识别密码文本框并传递它的值。
要识别密码文本框, 请执行以下过程:
- 右键单击密码文本框, 然后从给定的弹出菜单中单击”检查选项”, 如下面的屏幕快照所示:
- 将打开开发人员工具窗口, 其中包含在密码文本框的开发中使用的所有特定代码。
- 然后, 复制name属性的值, 即密码, 如下图所示:
这里是示例代码:
#identify the password text box and enter the value
driver.find_element_by_name("password").send_keys("########")
time.sleep(3)
步骤8
在此步骤中, 我们将确定”下一步”按钮, 然后单击它。
要确定下一步按钮, 请按照以下过程操作:
- 右键单击下一个按钮, 然后在给定的弹出菜单中单击”检查”选项, 如下图所示:
- 将打开开发人员工具窗口, 其中包含在Next开发中使用的所有特定代码。
- 从chropath部分复制其绝对XPath的值:// span [contains(text(), ‘Next’)], 如下图所示:
这里是示例代码:
#click on the next button
driver.find_element_by_xpath("//span[contains(text(), 'Next')][1]").click()
time.sleep(3)
步骤9
在测试脚本的最后一步, 我们将关闭浏览器。
这里是示例代码:
#close the browser
driver.close()
并且, 成功编写完所有上述步骤后, 我们的最终测试脚本将如下所示。
from Selenium import webdriver
import time
from Selenium.webdriver.common.keys import Keys
print("test case started")
#open Google Chrome browser
driver = webdriver.Chrome()
#maximize the window size
driver.maximize_window()
#delete the cookies
driver.delete_all_cookies()
#navigate to the url
driver.get("https://www.gmail.com")
#identify the user name text box and enter the value
driver.find_element_by_id("identifierId").send_keys("xyz11@gmail.com")
time.sleep(2)
#click on the next button
driver.find_element_by_xpath("//span[@class='RveJvd snByac'][1]").click()
time.sleep(3)
#identify the password text box and enter the value
driver.find_element_by_name("password").send_keys("#########")
time.sleep(3)
#click on the next button
driver.find_element_by_xpath("//span[contains(text(), 'Next')][1]").click()
time.sleep(3)
#close the browser
driver.close()
print("Gmail login has been successfully completed")
注意:在上述代码中, 请在以下位置使用你的Gmail ID:xyz11@gmail.com和密码:#########
运行测试脚本
要运行上述测试脚本, 我们将右键单击代码, 然后选择”运行方式”→” Python运行”, 如下面的屏幕截图所示:
上面的测试脚本将启动Google Chrome浏览器并自动执行所有测试方案。
并且, 正如我们在下面的屏幕截图中看到的那样, 当我们在控制台屏幕上获得打印消息(输出)时, 我们的代码正在成功运行。
评论前必须登录!
注册