Selenium支持Python,因此可以与Python一起用作Selenium WebDriver进行测试。
- 与其他编程语言相比,Python简单得多。
- PythonAPI使能够通过Selenium与浏览器连接。
- Selenium将标准Python命令发送到不同的浏览器,尽管它们的浏览器设计各不相同。
可以在不同的操作系统上使用Firefox、Chrome、IE等的Python脚本运行Selenium。
在本Selenium Python教程中,将了解-
- Python是什么?
- 什么是Selenium?
- 为什么在Selenium中选择Python而不是Java
- 如何在Eclipse中安装和配置PyDev
- 如何用Python在Selenium中创建测试脚本
Python是什么?
Python是一种面向对象的高级脚本语言。与任何其他编程语言相比,它的语法复杂性更低。
什么是Selenium?
Selenium是测试Web应用程序的工具。例如,可以通过各种方式完成此操作
- 允许它轻触按钮
- 在结构中输入内容
- 浏览一下站点,检查是否一切“正常”,以此类推。
为什么在Selenium中选择Python而不是Java
与Java相比,Python更适合与Selenium一起使用的几点是,
- 与Python程序相比,Java程序的运行速度往往较慢。
- Java使用传统的大括号开始和结束块,而Python使用缩进。
- JAVA使用静态类型,而Python是动态类型的。
- 与Java相比,Python更简单、更紧凑。
如何在Eclipse中安装和配置PyDev
PyDev是Eclipse的Python开发环境。
步骤1)转到Eclipse Marketplace。帮助>安装新软件
下一步是为Eclipse安装“pydev IDE”。
步骤2)在本步骤中,
- 搜索“http://pydev.org/updates”in Work with and Then“
- 选择所有列出的项目,然后单击两次下一步
- 接受许可协议并单击Finish。
步骤3)可能会遇到安全警告,单击“仍要安装”。
步骤4)现在,在此步骤中,将设置首选项。借助Preference选项,可以根据项目需要使用Python。
转到“窗口”>“首选项”>“PyDev”>“解释器”>“Python解释器”。
让我们设置默认的Python解释器。这就像需要更改解释器名称一样,单击Browse for python/PyPy exe按钮。
步骤5)在此步骤中,给出Python的“解释器名称”和“exe”文件路径。
- 点击“浏览”,找到安装Python的python.exe。
- 单击“确定”按钮。
- 选择所有文件夹,然后单击确定
- 单击“Apply and Close”(应用并关闭)。
步骤6)在Python中创建一个新项目。在这一步中,
- 右键单击PyDev package Explorer>New。
- 选择选项其他。
- 选择“PyDev>PyDev项目”。
- 按“下一步”按钮。
- 命名项目
- 单击“完成”。
可以看到创建了新的Python(PyDev)项目。
步骤7)在本步骤中,
创建‘PyDev Project’之后,将创建一个新的Python包。
- 右键单击Project>New>PyDev Package。
- 命名包,然后单击Finish。
步骤8)如果在下面的屏幕截图中看到,则创建了一个新的包。
创建新包后,下一步是创建PyDev Module。因此,将不需要重新编写程序。
步骤9)创建新的PyDev模块。右键单击Package>New>PyDev模块。
命名模块,然后单击“Finish”。
选择空模板,然后单击“确定”。
步骤10)使用Python编写Selenium代码,如下所示
如何用Python在Selenium中创建测试脚本
在这个使用Python的Selenium WebDriver示例中,我们使用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://www.facebook.com")
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模块导入密钥
- 代码行3:user是一个变量,我们将用它来存储username值。
- 代码行4:变量“password”将用于存储密码值。
- 代码行5:在该行中,我们通过将“Firefox”创建为对象来初始化它。
- 代码行6:“driver.get方法”将导航到URL给定的页面。Webdriver将等待页面完全加载(即,“onload”时机已经结束),然后才将控制权返回给测试或脚本。
- 代码行7:在该行中,我们找到了必须写入“email”的文本框的元素。
- 代码行8:现在我们将值发送到电子邮件部分
- 代码行9:密码相同
- 代码行10:将值发送到密码部分
- 代码行11: element.send_keys(Keys.RETURN) 用于在插入值后按Enter键
- 代码行12:关闭
输入的用户名“guru99”和密码的值。
Facebook页面将使用电子邮件和密码登录。页面打开(见下图)
示例2:登录Facebook并检查标题
在此示例中,
-
我们将打开一个登录页面。
-
填写必填字段“用户名”和“密码”。
-
检查页面标题
-
from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait ##### 1) 打开 Firefox browser = webdriver.Firefox() ##### 2) 导航到facebook browser.get("http://www.facebook.com") ##### 3) 搜索和输入电子邮件或电话 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") ##### 4)点击登录 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:单击“Submit”按钮
- 代码行15:创建超时为5秒的等待对象。
- 代码行16:从“Browser”对象捕获标题。
- 代码行17:使用“facebook”测试捕获的标题字符串
总结:
- Selenium是一个开源的基于Web的自动化工具。
- 使用Python语言结合Selenium进行测试。与任何其他编程语言相比,它的冗长和易于使用要少得多
- Python API使能够通过Selenium与浏览器连接
- Selenium可以将标准Python命令发送到不同的浏览器,尽管它们的浏览器设计各不相同。