带有 WebDriver 示例的 Selenium Python 教程
Python 与 Selenium
Selenium 支持 Python,因此可以将其作为 Selenium WebDriver 与 Python 一起用于测试。
- 与其他编程语言相比,Python 更容易,冗余更少。
- Python API 使您能够通过 Selenium 连接到浏览器。
- Selenium 将标准 Python 命令发送到不同的浏览器,尽管它们的浏览器设计有所不同。
您可以在不同的操作系统上,使用 Python 脚本运行 Selenium,适用于 Firefox、Chrome、IE 等。
什么是 Python?
Python 是一种高级面向对象脚本语言。它以用户友好的方式设计。Python 使用简单的英语关键字,易于解释。它比任何其他编程语言的语法复杂性更低。
请参阅下表中的一些示例。
关键字 | 含义 | 用途 |
---|---|---|
elif | Else if | Else if |
else | Else | if: X; elif: Y; else: J |
except | 这样做,如果发生异常, | except ValueError, a: print a |
exec | 将字符串作为 Python 运行 | exec 'print "hello world !"' |
什么是 Selenium?
Selenium 是一种测试您的 Web 应用程序的工具。您可以通过多种方式进行此操作,例如:
- 允许它点击按钮
- 在结构中输入内容
- 浏览您的网站以检查一切是否“正常”等等。
如何在 Eclipse 中安装和配置 PyDev
PyDev 是 Eclipse 的 Python 开发环境。
步骤 1) 进入 Eclipse Marketplace。帮助 > 安装新软件
下一步是为 Eclipse 安装“pydev IDE”。
步骤 2) 在此步骤中,
- 在“工作区”中搜索“http://pydev.org/updates”,然后
- 选择所有列出的项目并点击两次“下一步”
- 接受许可协议并点击“完成”。
步骤 3) 您可能会遇到安全警告,点击“无论如何安装”。
步骤 4) 现在,在此步骤中,您将设置首选项。借助首选项选项,您可以根据项目需要使用 Python。
转到窗口 > 首选项 > PyDev > 解释器 > Python 解释器。
让我们设置默认的 Python 解释器。这就像您需要为运行 Java 代码设置 Java 编译器一样。要更改解释器名称,请点击“浏览 python/pypy exe 按钮”。
步骤 5) 在此步骤中,提供“解释器名称”和 Python 的“exe”文件路径。
- 点击“浏览”并找到您安装 Python 的 python.exe。
- 点击“确定”按钮。
- 选择所有文件夹并点击“确定”
- 点击“应用并关闭”。
步骤 6) 在 Python 中创建一个新项目。在此步骤中,
- 右键点击 PyDev 包资源管理器 > 新建。
- 选择其他选项。
- 选择“PyDev > PyDev 项目”。
- 按下“下一步”按钮。
- 命名您的项目
- 点击“完成”。
您可以看到新的 Python (PyDev) 项目已创建。
步骤 7) 在此步骤中,
创建“PyDev 项目”后,您将创建一个新的 Python 包。
- 右键点击项目 > 新建 > PyDev 包。
- 命名您的包并点击“完成”。
步骤 8) 如果您在下面的截图中看到,一个新的包已创建。
创建新包后,下一步是创建 PyDev 模块。该模块包含一些用于初始化的 Python 文件。这些文件或模块中的函数可以导入到其他模块中。因此,无需再次重写程序。
步骤 9) 创建一个新的 PyDev 模块。右键点击包 > 新建 > PyDev 模块。
命名您的模块并点击“完成”。
选择空模板并点击“确定”。
步骤 10) 编写您使用 Python 的 Selenium 代码,如下所示
如何使用 Python 在 Selenium 中创建测试脚本
在这个 Selenium WebDriver 与 Python 的示例中,我们使用 Firefox 驱动程序自动化了“Facebook 登录页面”。
Selenium 与 Python 示例 1:登录 Facebook
from selenium import webdriver from selenium.webdriver.common.keys import Keys user_name = "YOUR EMAILID" password = "YOUR PASSWORD" driver = webdriver.Firefox() driver.get("https://#") element = driver.find_element_by_id("email") element.send_keys(user_name) element = driver.find_element_by_id("pass") element.send_keys(password) element.send_keys(Keys.RETURN) element.close()
代码快照
代码解释
- 代码行 1:从 selenium 模块导入 webdriver
- 代码行 2:从 selenium 模块导入 Keys
- 代码行 3:User 是一个变量,将用于存储用户名的值。
- 代码行 4:变量“password”将用于存储密码的值。
- 代码行 5:在此行中,我们通过创建“FireFox”对象来初始化它。
- 代码行 6:“driver.get 方法”将导航到 URL 指定的页面。WebDriver 将等到页面完全加载(即“onload”事件已触发)后,才将控制权返回给您的测试或脚本。
- 代码行 7:在此行中,我们正在查找需要写入“电子邮件”的文本框元素。
- 代码行 8:现在我们将值发送到电子邮件部分
- 代码行 9:密码相同
- 代码行 10:将值发送到密码部分
- 代码行 11:element.send_keys(Keys.RETURN) 用于在插入值后按下回车键
- 代码行 12:关闭
输出
用户名“guru99”和密码的值已输入。
Facebook 页面将使用电子邮件和密码登录。页面已打开(见下图)
Selenium 与 Python 示例 2:登录 Facebook 并检查标题
在此示例中,
- 我们将打开一个登录页面。
- 填写所需字段“用户名”和“密码”。
- 检查页面标题
from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait # Step 1) Open Firefox browser = webdriver.Firefox() # Step 2) Navigate to Facebook browser.get("https://#") # Step 3) Search & Enter the Email or Phone field & Enter Password username = browser.find_element_by_id("email") password = browser.find_element_by_id("pass") submit = browser.find_element_by_id("loginbutton") username.send_keys("YOUR EMAILID") password.send_keys("YOUR PASSWORD") # Step 4) Click Login submit.click() wait = WebDriverWait( browser, 5 ) page_title = browser.title assert page_title == "Facebook"
代码快照
代码解释
- 代码行 1-2:导入 selenium 包
- 代码行 4:通过创建对象初始化 Firefox
- 代码行 6:获取登录页面(Facebook)
- 代码行 8-10:获取用户名、密码输入框和提交按钮。
- 代码行 11-12:在用户名和密码输入框中输入数据
- 代码行 14:点击“提交”按钮
- 代码行 15:创建等待对象,超时时间为 5 秒。
- 代码行 16:从“浏览器”对象捕获标题。
- 代码行 17:使用“Facebook”测试捕获的标题字符串
为什么在 Selenium 中选择 Python 而不是 Java
Python 优于 Java 用于 Selenium 的几个优点是:
- Java 程序的运行速度往往比 Python 程序慢。
- Java 使用传统的括号来开始和结束代码块,而 Python 使用缩进。
- Java 使用静态类型,而 Python 是动态类型。
- 与 Java 相比,Python 更简单、更紧凑。
摘要
- Selenium 是一款开源的基于网络的自动化工具。
- Python 语言与 Selenium 一起用于测试。它比任何其他编程语言冗余更少且易于使用
- Python API 授权您通过 Selenium 连接到浏览器
- 尽管浏览器设计不同,Selenium 仍可以将标准 Python 命令发送到不同的浏览器。