带有 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。帮助 > 安装新软件

Install and Configure PyDev in Eclipse

下一步是为 Eclipse 安装“pydev IDE”。

步骤 2) 在此步骤中,

  1. 在“工作区”中搜索“http://pydev.org/updates”,然后
  2. 选择所有列出的项目并点击两次“下一步”
  3. 接受许可协议并点击“完成”。

Install and Configure PyDev in Eclipse

步骤 3) 您可能会遇到安全警告,点击“无论如何安装”。

Install and Configure PyDev in Eclipse

步骤 4) 现在,在此步骤中,您将设置首选项。借助首选项选项,您可以根据项目需要使用 Python。

转到窗口 > 首选项 > PyDev > 解释器 > Python 解释器。

Install and Configure PyDev in Eclipse

让我们设置默认的 Python 解释器。这就像您需要为运行 Java 代码设置 Java 编译器一样。要更改解释器名称,请点击“浏览 python/pypy exe 按钮”。

Install and Configure PyDev in Eclipse

步骤 5) 在此步骤中,提供“解释器名称”和 Python 的“exe”文件路径。

  1. 点击“浏览”并找到您安装 Python 的 python.exe。
  2. 点击“确定”按钮。
  3. 选择所有文件夹并点击“确定”
  4. 点击“应用并关闭”。

Install and Configure PyDev in Eclipse

步骤 6) 在 Python 中创建一个新项目。在此步骤中,

  1. 右键点击 PyDev 包资源管理器 > 新建。
  2. 选择其他选项。

Install and Configure PyDev in Eclipse

  1. 选择“PyDev > PyDev 项目”。
  2. 按下“下一步”按钮。

Install and Configure PyDev in Eclipse

  1. 命名您的项目
  2. 点击“完成”。

Install and Configure PyDev in Eclipse

您可以看到新的 Python (PyDev) 项目已创建。

步骤 7) 在此步骤中,

创建“PyDev 项目”后,您将创建一个新的 Python 包。

  1. 右键点击项目 > 新建 > PyDev 包。
  2. 命名您的包并点击“完成”。

Install and Configure PyDev in Eclipse

Install and Configure PyDev in Eclipse

步骤 8) 如果您在下面的截图中看到,一个新的包已创建。

Install and Configure PyDev in Eclipse

创建新包后,下一步是创建 PyDev 模块。该模块包含一些用于初始化的 Python 文件。这些文件或模块中的函数可以导入到其他模块中。因此,无需再次重写程序。

步骤 9) 创建一个新的 PyDev 模块。右键点击包 > 新建 > PyDev 模块。

Install and Configure PyDev in Eclipse

命名您的模块并点击“完成”。

Install and Configure PyDev in Eclipse

选择空模板并点击“确定”。

Install and Configure PyDev in Eclipse

步骤 10) 编写您使用 Python 的 Selenium 代码,如下所示

Install and Configure PyDev in Eclipse

如何使用 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()

代码快照

Create Test Scripts in Selenium with Python

代码解释

  • 代码行 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”和密码的值已输入。

Create Test Scripts in Selenium with Python

Facebook 页面将使用电子邮件和密码登录。页面已打开(见下图)

Create Test Scripts in Selenium with Python

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"

代码快照

Create Test Scripts in Selenium with Python

代码解释

  • 代码行 1-2:导入 selenium 包
  • 代码行 4:通过创建对象初始化 Firefox
  • 代码行 6:获取登录页面(Facebook)
  • 代码行 8-10:获取用户名、密码输入框和提交按钮。
  • 代码行 11-12:在用户名和密码输入框中输入数据
  • 代码行 14:点击“提交”按钮
  • 代码行 15:创建等待对象,超时时间为 5 秒。
  • 代码行 16:从“浏览器”对象捕获标题。
  • 代码行 17:使用“Facebook”测试捕获的标题字符串

为什么在 Selenium 中选择 Python 而不是 Java

Python 优于 Java 用于 Selenium 的几个优点是:

  1. Java 程序的运行速度往往比 Python 程序慢。
  2. Java 使用传统的括号来开始和结束代码块,而 Python 使用缩进。
  3. Java 使用静态类型,而 Python 是动态类型。
  4. 与 Java 相比,Python 更简单、更紧凑。

摘要

  • Selenium 是一款开源的基于网络的自动化工具
  • Python 语言与 Selenium 一起用于测试。它比任何其他编程语言冗余更少且易于使用
  • Python API 授权您通过 Selenium 连接到浏览器
  • 尽管浏览器设计不同,Selenium 仍可以将标准 Python 命令发送到不同的浏览器。