引用
速度
setSpeed 500
打开页
open /
waitForPageToLoad
验证 DOM
waitForElementPresent //DIV[@id='btnDirectLr']
waitForElementPresent //DIV[text()='库存报表']
verifyElementPresent css=div#msg-div:contains("审核成功")
waitForElementPresent //DIV[@id='btnNew']
waitForElementPresent //div[contains(@class, 'x-mask-msg') and contains(@style, 'display: none')]
waitForElementNotPresent //DIV[@id='winForm' and contains(@style, 'visibility: hidden')]
单击
click //DIV[text()='库存报表']
click id=btnNew
click //DIV[@id='btnNew']/em/button
click //label[text()='仓库:']/following-sibling::div/div/div
click css='li.x-boundlist-item'
iframe
selectFrame content-iframe
waitForFrameToLoad
selectFrame relative=up
store
storeText //div[@id='grdMain']/div[2]/div/table/tbody/tr[2]/td[2]/div name
store 2 ckQty
storeEval storedVars['oldQty']-storedVars['ckQty'] newQty
echo ${name}
verify
verifyText //div[@id='grdMain']/div[2]/div/table/tbody/tr[2]/td[2]/div ${name}
verifyText "css=div#grdMain td.x-grid-cell:nth-child(6) div" ${name}
form
type //input[@name='item[product_id]'] ${name}
keyUp //input[@name='item[product_id]'] w
waitForElementPresent //div[contains(@class, 'x-mask-msg') and contains(@style, 'display: none')]
waitForElementNotPresent //DIV[@id='blProducts' and contains(@class, 'display: none')]
click //DIV[@id='blProducts']/div/ul/li[1]/a
click //DIV[@id='btnWinLiSave']/em/button
click //DIV[@id='btnWinSave']/em/button
waitForElementPresent //div[contains(@class, 'x-mask-msg') and contains(@style, 'display: none')]
select grid row & audit
mouseDown //div[@id='grdMain']/div[2]/div/table/tbody/tr[2]/td
click //DIV[@id='btnAudited']/em/button
click //div[contains(@class, 'x-window x-message-box')]/div[3]/div/div[2]/em/button
waitForElementPresent //div[contains(@class, 'x-mask-msg') and contains(@style, 'display: none')]
提示
runScript msg = '<div id="selenium-msg" style="background-color: orange;border-radius: 10px;font-size: 20px;left: 500px;line-height: 50px;position: absolute; text-align: center;top: 5px;width: 600px;z-index: 10000;"></div>'; Ext.DomHelper.insertFirst(Ext.getBody(), msg, true);
runScript Ext.get('selenium-msg').dom.innerHTML = '测试物料出库库存变化';
runScript Ext.get('selenium-msg').dom.innerHTML = '得到测试数据';
runScript Ext.get('selenium-msg').dom.innerHTML = '测试完成';
Ext tree 加载成功
waitForCondition !selenium.browserbot.getCurrentWindow().Ext.getCmp('treMain').getStore().loading 2000
Click Ext tree node
click css=div#treMain .x-grid-row .x-grid-cell-inner:contains('库存报表')
消息框没有隐藏
waitForCondition selenium.browserbot.getCurrentWindow().Ext.MessageBox.isHidden() 1000
存/得 Ext 数据
storeEval selenium.browserbot.getCurrentWindow().Page.grid.getStore().data.items[0].data product
storeEval storedVars['product'].product_code name
Ext window 显示
waitForCondition selenium.browserbot.getCurrentWindow().Page.win.isVisible() 1000
Ext Combobox 处理
runScript Page.frm.getForm().findField("item[warehouse_id]").expand()
waitForCondition selenium.browserbot.getCurrentWindow().Ext.getCmp('frmMain').getForm().findField("item[warehouse_id]").isExpanded 1000
runScript Page.frm.getForm().findField("item[warehouse_id]").select(1)
runScript Page.frm.getForm().findField("item[warehouse_id]").collapse()
Ext recordselect 处理
type //input[@name='item[product_id]'] ${name}
keyUp //input[@name='item[product_id]'] w
waitForCondition selenium.browserbot.getCurrentWindow().Ext.MessageBox.isHidden() 1000
waitForCondition selenium.browserbot.getCurrentWindow().Ext.getCmp('frmLi').getForm().findField("item[product_id]").isExpanded 1000
click dom=selenium.browserbot.getCurrentWindow().Ext.getCmp('frmLi').getForm().findField("item[product_id]").getPicker().getNodes()[0]
runScript Ext.getCmp('frmLi').getForm().findField("item[product_id]").collapse()
Ext grid 加载完成
waitForCondition !selenium.browserbot.getCurrentWindow().Page.grid.getStore().loading 2000
得到 Ext grid 数据
storeEval selenium.browserbot.getCurrentWindow().Page.grid.getStore().data.items[0].data.code ckBillCode
echo ckBillCode: ${ckBillCode}
click Ext message yes
click css=div#btnAudited em button
click dom=selenium.browserbot.getCurrentWindow().Ext.MessageBox.msgButtons.yes.btnEl.dom
verifyElementPresent css=div#msg-div:contains("审核成功")
verify Ext grid cell value
verifyText css=div#grdMain td.x-grid-cell:nth-child(6) div ${newQty}.0
分享到:
相关推荐
它由Selenium WebDriver、Selenium Grid和Selenium RC等组件组成,其中WebDriver是最常用的接口,用于与浏览器进行交互。 2. **Selenium WebDriver**: WebDriver是Selenium的核心部分,允许程序员编写可跨多个...
### Selenium RC for Java:常用方法详解 #### 一、文本框(Textbox) 在自动化测试过程中,文本框是最常见的UI元素之一。Selenium 提供了一系列的方法来处理这些元素。 ##### 向文本框中填写信息 **方法**: `type...
通过封装这些常用操作,我们可以将关注点集中在测试逻辑上,而不是重复的定位和操作代码,极大地提高了代码的可读性和可维护性。在实际项目中,可以根据需求继续扩展这个工具类,比如添加等待元素出现、截屏等功能,...
本文将深入探讨Selenium3中常用的浏览器驱动,包括火狐浏览器(Firefox)、IE浏览器(Internet Explorer)以及谷歌浏览器(Chrome),并提及WebDrive驱动在自动化测试中的作用。 首先,让我们了解Selenium3。...
### Selenium 常用方法详解 #### 一、文本框 Textbox 在自动化测试中,文本框是非常常见的元素之一。Selenium 提供了一系列的方法来处理这些元素。 **1. 向文本框中填写信息** - **方法名称:** `type` - **...
本篇文章将深入探讨Selenium的三种常用浏览器驱动:ChromeDriver、GeckoDriver(用于Firefox)和EdgeDriver。 1. **ChromeDriver**: ChromeDriver是Google Chrome浏览器的官方驱动,由Chrome团队开发和维护。它...
在这个“ruby+selenium-webdriver测试--第一个例子源代码”中,我们将探讨如何使用Ruby和Selenium-Webdriver实现自动化测试的初步步骤。 首先,我们需要安装必要的库。确保已经安装了Ruby,并通过RubyGems来安装...
`Click`、`SendKeys`等方法则是直接操作元素的常用手段。 通过研究这个源码,你可以深入理解Selenium如何与C#交互,学习如何编写高效的自动化测试脚本。同时,源码的逻辑清晰,对于初学者来说是很好的学习材料。...
### 四、Selenium常用API 1. **find_element_by_XXX**:根据不同的定位策略(如ID、Name、XPath等)查找元素。 2. **find_elements_by_XXX**:与上类似,但返回的是元素列表。 3. **click()**:点击元素。 4. **...
根据提供的文件信息,我们可以总结出Selenium中Python常用的函数及其用法。Selenium是一个强大的工具,主要用于Web应用程序的自动化测试。下面将详细介绍这些函数的功能及使用场景。 ### 1. 初始化WebDriver实例 - ...
在“Selenium常用资料”这个压缩包中,可能包含以下内容: 1. **Selenium教程**:这可能是关于Selenium的基本概念、安装指南、API参考、示例代码等内容,帮助初学者快速入门。 2. **XPath教程**:详细解释XPath的...
Python作为其支持的多种编程语言之一,因其简洁明了的语法和丰富的库支持,成为Selenium 2的常用绑定语言。 **一、Selenium 2的核心概念** 1. **WebDriver**: Selenium 2 的核心是WebDriver接口,它提供了与浏览器...
2. Java支持:Java是Selenium常用的一种编程语言,它的灵活性和强大的库支持使得编写测试脚本变得简单。`jar包`通常包含了Selenium WebDriver的Java绑定,这些绑定允许Java代码直接控制浏览器,执行自动化测试。...
接下来,"页面所有常用元素声明及调用方法"会涵盖Selenium如何定位并操作网页元素。Selenium提供了多种选择器来查找元素,如ID、Name、XPath、CSS选择器等。例如,你可以这样定位一个ID为"myElement"的元素: ```...
在 Selenium 中,try-except 机制是一种常用的异常捕获方式,它允许开发者捕获并处理异常,从而确保测试脚本的稳定运行。 Try-Except 机制的原理 在 Python 中,try-except 机制是一种常用的异常处理方式,它允许...
描述提到"内涵常用selenium功能的示例代码",这可能包括了如定位元素(通过ID、CSS选择器、XPath等)、交互元素(点击、输入文本)、页面导航(前进、后退、刷新)、处理弹出窗口和对话框、等待元素可见或可交互等...
"nodeps" 表示它没有包含外部依赖,意味着你需要确保系统中已经安装了所有必要的依赖库,例如 JDK,以便能够正确运行 Selenium 代码。 "Selenium" 标签进一步确认了这个压缩包的核心内容。Selenium 主要有三个主要...
Java8和Selenium3.12是自动化测试领域中常用的技术组合,主要用于Web应用程序的功能测试。这个压缩包包含了运行自动化测试所需的全套Java库,对于学习和实践自动化测试来说非常重要,因为网上可找到的免费资源相对...
Python Selenium库允许开发者用Python编写控制浏览器的代码,支持多种浏览器,如Chrome、Firefox等。 【描述】"使用python seleium 开发的简单爬虫小程序" 指出这个项目的核心是利用Python的Selenium库构建的一个...