Selenium Python教程
在本教程中,我们将学习如何使用Python编程语言运行Selenium测试脚本。
在继续本教程之前,首先,我们将了解一些要点,这些要点将有助于我们实现测试脚本在Python中。
什么是Selenium?
为什么我们使用Selenium进行自动化测试?
什么是Python?
Python为什么对自动化测试有用?
Selenium with Python
使用Python配置Selenium
在Eclipse中配置PyDev
什么是Selenium?
Selenium是一种开源测试工具,这意味着可以从互联网上下载它而无需花费任何金钱。 Selenium是一种功能测试工具,也与非功能测试工具兼容。
有关Selenium的更多信息,请参见下面的链接: https://www.lidihuo.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.lidihuo.com/Python-tutorial
为什么Python对自动化测试有用?
Python在自动化测试中非常有用,因为它支持多种编程模式。
Python有许多内置测试框架,例如 Pytest和Robot ,涵盖了调试和更快的工作流程。
这是一种解释语言,意味着解释器一次执行一行代码,这使调试变得容易。
Python是跨平台语言;这就是为什么它可以在 Windows,Linux,UNIX和Macintosh等不同平台上运行的原因
可以使用其他编程语言(例如 C,C ++,JAVA 等)轻松实现Python。
使用Python的Selenium
有两种方法可以在Python的帮助下运行Selenium测试脚本:
使用Python配置Selenium
在Eclipse中配置PyDev。
让我们看看如何使用Python编程语言配置Selenium:
使用Python配置Selenium的步骤如下:
在Windows上下载并安装Python
在Python中安装Selenium库
下载并安装PyCharm
创建一个新项目并编写Selenium测试脚本
运行并验证测试脚本。
下载并安装适用于Windows的Python
在本节中,我们将了解如何下载和安装适用于Windows的Python平台。
下载Python
要下载适用于Windows平台的最新版本的Python,请参考以下链接: https://www.Python.org/downloads/
单击上面的链接后,将显示最新的发行版列表,我们单击了 Python 3.8.1版本,如下面的屏幕截图所示:
Python-3.8.1 版本窗口将出现在屏幕上,然后滚动页面一点并找到 File 部分,然后单击Windows操作系统的基于Windows x86-64基于Web的安装程序链接,如下面的屏幕截图所示:
安装Python
为 Windows-64 bit 下载Python之后,我们就可以安装Python。
要安装Python,请按照下面的过程:
一旦我们双击下载的可执行文件,屏幕上就会出现 Python 3.8.1(64位)设置窗口,其中有两个选项可用于安装Python,哪个是: 立即安装 自定义安装
我们将点击自定义安装,然后选择将Python 3.8添加到路径复选框,如下图所示:
之后,单击自定义安装,可选功能将出现在屏幕上,我们可以根据需要选择和取消选择功能。
然后,点击下一步按钮,继续进行操作,如下图所示:
一次,我们单击了下一步按钮;我们有一个可用的高级选项列表,我们可以在其中根据需要选择选项,并确保已选择为所有用户安装。
我们还可以根据需要通过单击浏览 自定义安装位置。
然后,点击安装按钮,以安装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设置窗口,我们点击下一步 >按钮以继续操作,如下图所示:
在下一步中,我们可以通过单击 Browser (浏览器)按钮,然后单击 Next (下一步)按钮来选择安装位置 。
下一步,我们提供了一些安装选项,我们可以根据需要选择它们。
然后,点击下一步按钮,如下图所示:
然后,单击安装按钮以安装PyCharm,如下面的屏幕截图所示:
如下面的图片所示,安装过程正在开始。
然后,单击完成按钮以完成安装过程,如下图所示:
创建一个新项目并编写Selenium测试脚本
成功安装PyCharm之后,我们将打开PyCharm IDE以创建新项目。
在PyCharm中创建新项目
按照以下过程,在PyCharm中创建一个新项目:
首先,双击打开PyCharm,然后单击创建新项目,如下图所示:
此后,我们将提供项目名称为 SeleniumTest ,然后单击 Create 按钮,如下图所示:
单击"创建"按钮后,我们将显示以下窗口:
添加Selenium测试脚本
要在PyCharm中添加Selenium测试脚本,请执行以下过程:
右键单击 SeleniumTest 项目,然后转到 New ,我们可以根据需要在给定列表中添加任何选项。
但是,我们在这里添加了Python文件,为此,我们将添加目录,它可以帮助我们分别管理它们,如下面的屏幕截图所示:
然后提供目录名称,在本例中,我们将其命名为 Demo
然后,按 Enter 键,如下图所示:
创建目录后,我们将右键单击 Demo 目录,然后转到 New ,然后从弹出菜单中选择 Python文件如下图所示的菜单:
演示→新建→Python文件
而且,我们为python文件提供的名称为 Sample1 。
然后,按 Enter 键,如下图所示:
之后,我们有了IDE,可以在其中创建或编写Selenium测试脚本。
编写Selenium测试脚本
出于测试目的,我们将首先转到 Google主页并从此处搜索 lidihuo 。
我们正在逐步创建示例测试脚本,以使您全面了解如何用Python编程语言编写Selenium测试脚本。
为此,请执行以下步骤:
动作 |
输入 |
预期结果 |
从Selenium中导入WebDriver。 |
|
应该导入WebDriver。 |
打开Google Chrome浏览器。 |
|
应打开Google Chrome浏览器。 |
最大化浏览器窗口。 |
|
浏览器窗口应最大化。 |
导航到 Google主页。 |
https://www.google.com/ |
必须显示Google主页。 |
识别 Google搜索文本框并传递值。 |
lidihuo |
该值应在搜索文本框中输入。 |
点击 Google搜索按钮。 |
|
应点击Google搜索按钮。 |
关闭浏览器。 |
|
浏览器应该关闭。 |
Step1
第一步,我们将键入以下语句以导入Web驱动程序:
from selenium import webdriver
Step2
然后,我们将打开Google Chrome浏览器。
如下面的屏幕截图所示,我们提供了多种类型的浏览器选项,并且可以从以下任何一种浏览器中进行选择列表,例如 Chrome,Edge,firefox,Internet Explorer,歌剧,野生动物园等。
以下是打开Google Chrome浏览器的示例代码:
driver = webdriver.Chrome()
Step3
下一步,我们将最大化浏览器窗口的大小,示例代码如下:
Step4
然后,我们将导航到给定的URL。
示例代码如下:
driver.get("https://www.google.com/")
注意: 我们知道Python是一种非常容易编写代码的语言,因为我们不必像编写Java那样编写多个语句。或者,如果要注释掉某些内容,我们只需在语句中添加一个井号[#],或者我们可以直接从键盘上按Ctrl +正斜杠[/]。
第5步
在此步骤中,我们试图借助其名称属性值。
右键单击 Google搜索文本框,然后在弹出菜单中选择检查选项,如下图所示:
将打开开发人员工具窗口,其中包含开发 Google搜索文本框时使用的所有特定代码。
然后复制其 Name 属性的值,即" q ",如下图所示:
这里是示例代码:
driver.find_element_by_name("q").send_keys("lidihuo")
Step6
一旦我们确定了Google搜索文本框,我们就会确定 Google搜索按钮。
因此,请执行以下过程:
右键单击 Google搜索按钮,然后从给定的弹出菜单中选择检查选项,如下图所示:
将打开开发人员工具窗口,其中包含在开发 Google搜索按钮时使用的所有特定代码。
然后,复制其名称属性的值,即" btnK ",如下图所示:
而且,示例代码如下:
driver.find_element_by_name("btnK").send_keys(Keys.ENTER)
Step7
在最后一步,我们正在关闭浏览器。
并且,用于关闭浏览器的示例代码如下:
完成上述所有步骤之后,我们的最终测试脚本将如下所示:
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("lidihuo")
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中添加了密钥库。代码,我们使用 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平台一样,这就是为什么我们单击 zip 下载可执行文件的原因,如下面的屏幕截图所示:
下载 exe 文件后,我们可以将该文件粘贴到Python文件夹中并解压缩。
然后,我们将在Python IDE中再创建一个名为库的文件夹,称为 Browsers 。
右键单击项目(SeleniumTest)→新建→目录,如下图所示:
而且,我们将手动将所有驱动程序的可执行文件添加到 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 键,正如我们在下面的屏幕快照中看到的那样,示例测试用例一直处于凝视状态。
在自动完成所有方案后,它将显示为成功完成示例测试用例的消息。
这是另一种使用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
然后,点击安装按钮,如下面的屏幕截图所示:
点击安装按钮后,它将开始安装过程,然后单击确认按钮进行进一步的过程,如下面的过程所示:
然后,选择我接受许可协议的条款选项,然后单击 Finish (完成)按钮以完成安装过程,如下图所示:
安装完成后,请重新启动Eclipse IDE,如下图所示:
在那之后,我们将根据需求设置使用Python项目的首选项。
设置首选项
要设置首选项,请执行以下过程:
转到Eclipse Ide工具栏上的 Window 选项,然后在给定列表中选择 Preference 选项,如下图所示:
"偏好设置"窗口将打开,我们将在其中展开 PyDev ,然后再次展开 Interpreters ,然后从给定列表中选择 Python Interpreter 。单击浏览Python/pypy.exe 选项,如下图所示:
PyDev→解释器→Python解释器
一旦单击"浏览"以找到 Python/pypy.exe ,我们将提供Python的解释器名称和可执行文件文件路径。
为此,在选择解释器弹出窗口中,单击浏览按钮,然后在我们的本地系统中浏览Python的可执行文件路径,然后单击在确定按钮上,如下图所示:
之后,单击全选按钮,然后单击确定按钮以选择文件夹,如下图所示:
然后,点击应用并关闭按钮,以完成设置首选项过程,如下面的屏幕截图所示:
成功设置首选项后,我们将使用Python创建一个新项目。
创建新项目
要创建新项目,请执行以下步骤:
转到文件菜单,然后转到新建,然后在弹出菜单中选择其他选项,如下图所示:
文件→新建→其他
选择其他选项后, [新建] 窗口将打开,我们将在其中展开 PyDev 并选择 PyDev Project ,然后点击下一步按钮,如下图所示:
一旦我们单击"下一步"按钮;我们将提供项目名称,然后单击完成按钮,如下图所示:
Python项目是在Eclipse中创建的,如下图所示:
创建完Python项目后,我们将创建一个新的Python包。
创建新程序包
按照以下过程创建新程序包:
右键单击新创建的项目( SeleniumTest ),转到 New ,然后在给定的Popup菜单中选择 PyDev Package 我们可以在下图中看到:
然后提供 PyDev软件包的名称,然后单击 Finish (完成)按钮,如下图所示:
正如我们在下面的屏幕截图中看到的那样,新软件包已创建。
创建PyDev包后,我们将创建一个PyDev 模块。
创建PyDev模块
要创建PyDev模块,请执行以下过程:
右键单击新创建的Package [Demo],然后转到 New ,然后从给定列表中选择 PyDev模块,如下面的屏幕快照所示:
演示→新建→PyDev模块
然后给PyDev模块名称 [Test] ,然后单击 Finish 按钮,如下图所示:
之后,我们将从给定列表中选择空模板,然后点击确定按钮,如下图所示:
创建完Python模型后,就可以编写和执行Selenium测试脚本了。
编写并执行Selenium测试脚本
编写Selenium测试脚本
出于测试目的,我们将在 Gmail 应用程序上执行登录测试。
在此测试中,我们将自动执行以下测试方案:
动作 |
输入 |
预期结果 |
从Selenium导入Web驱动程序。 |
|
应该导入Web驱动程序。 |
打开Google Chrome浏览器。 |
|
应打开Google Chrome浏览器。 |
最大化浏览器并删除所有cookie |
|
应该最大化浏览器,并删除cookie。 |
导航至主页 Gmail应用程序。 |
https://www.gmail.com |
必须显示Gmail主页。 |
识别用户名文本框并传递值。 |
xyz11@gmail.com |
应该标识用户名文本框,并在用户名文本框中输入值。 |
点击下一步按钮。 |
|
应单击下一个按钮。 |
标识密码文本框并传递值。 |
####### |
应该标识密码文本框,并在"密码"文本框中输入值。 |
点击下一步按钮。 |
|
应单击下一个按钮。 |
关闭浏览器。 |
|
浏览器应该关闭。 |
请遵循以下步骤:
Step1
第一步,我们将在以下声明:
from selenium import webdriver
Step2
此后,我们将打开Google Chrome浏览器。
要启动Google Chrome或任何其他浏览器(例如Firefox等),我们需要从以下链接中下载Chrome驱动程序的可执行文件: https://sites.google.com/a/chromium.org/chromedriver/downloads
然后,将下载的exe文件粘贴到Python包(演示)中,以克服异常,如下面的屏幕截图所示:
示例代码如下:
#open Google Chrome browser
driver = webdriver.Chrome()
Step3
下一步,我们最大化并删除浏览器窗口的所有cookie。
这里是示例代码:
#maximize the window size
driver.maximize_window()
#delete the cookies
driver.delete_all_cookies()
Step4
在此步骤中,我们将导航到Gmail应用程序n URL。
示例代码如下:
#navigate to the url
driver.get("https://www.gmail.com")
Step5
一旦导航到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)
Step6
在此步骤中,我们将确定 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)
Step7
在此步骤中,我们将识别密码文本框并传递其值。
要识别密码文本框,请按照以下过程操作:
右键单击密码文本框,然后从给定的弹出菜单中单击检查选项,如下面的屏幕截图所示:
开发人员工具窗口将打开,其中包含在开发密码文本框时使用的所有特定代码。
然后复制 name 属性的值,即密码,如下图所示:
这里是示例代码:
#identify the password text box and enter the value
driver.find_element_by_name("password").send_keys("########")
time.sleep(3)
Step8
在此步骤中,我们将确定 Next 按钮并单击它。
要确定下一步按钮,请按照以下过程操作:
右键单击下一个按钮,然后在给定的弹出菜单中单击检查选项,如下图所示:
开发人员工具窗口将打开,其中包含下一步 开发中使用的所有特定代码。
复制其绝对XPath 的值,即: //span [contains(text(),'Next') ] from我们在下图中看到的 chropath 部分:
这里是示例代码:
#click on the next button
driver.find_element_by_xpath("//span[contains(text(),'Next')][1]").click()
time.sleep(3)
Step9
在测试脚本的最后一步,我们将关闭浏览器。
这里是示例代码:
#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浏览器并自动执行所有测试方案。
而且,如下面的屏幕快照所示,在控制台屏幕上获得打印消息(输出)后,代码成功运行。
