基于C#的Appium自动化测试框架(Ⅱ):Android元素定位

我们知道,Appium的原理上是通过RemoteWebDriver提供了元素定位功能,再根据定位后的元素进行操作,比如:

protected static RemoteWebDriver CalculatorSession;
CalculatorSession.FindElementByName("One").Click();

工作的重点就是定位到对应的元素,Appiuim提供了很多用来定位元素的方法,具体包括:

FindElement(By by);
FindElementByClassName(string className);
FindElementByCssSelector(string cssSelector);
FindElementById(string id);
FindElementByLinkText(string linkText);
FindElementByName(string name);
FindElementByPartialLinkText(string partialLinkText);
FindElementByTagName(string tagName);
FindElementByXPath(string xpath);

那么我们接下来的工作,就是找到这些适用于这些方法的元素了。

Android系统下的元素可以通过uiautomatorviewer进行定位,Uiautomatorviewer是Android SDK中自带的元素定位工具,在Android_SDK\tools\bin路径下直接打开该文件即可。

启动Android模拟器或链接Android真机,点击左上角的手机按钮,即可捕捉APP当前所处的界面,点击左上角的任意一个手机图标都可以,区别只是后者对层次进行了压缩,这种情况对于大量使用数组或者泛型填充的APP更加有优势,不会定位到一堆空元素或者名字ID都相同的元素出来:

比如说,我们定位这个分享按钮,我们可以看到这个按钮的resource-id(用ID定位)、class(ClassName定位)以及Text(用LinkText定位),我们在定位的时候,优先按照唯一的元素属性进行定位,这里我们选用文本进行定位,点击这个元素的代码那么可以如下:

     public void TestCase1()
        {
            CalculatorSession.FindElementByLinkText("分享").Click();
        }
时间: 2024-10-12 16:37:52

基于C#的Appium自动化测试框架(Ⅱ):Android元素定位的相关文章

appium+python搭建自动化测试框架_Appium元素定位(二)

1. id定位: self.driver.find_element_by_id('com.tencent.mobileqq:id/btn_login').click() 2. class定位: self.driver.find_element_by_class_name('android.widget.Button').click() (注:一般一个页面上的class属性不唯一,元素不唯一的话定位会报错了) 3. 相对定位: 相对定位是先找到该元素的有对应属性的父元素节点,然后基于父元素进行元素

学习使用Robot Framework自动化测试框架-web元素定位

转:http://blog.csdn.net/u012145166/article/details/50342569 1.name和id 其中使用到了name和id定位.但有时候由于开发人员的疏忽或者开发习惯的问题,会漏写name或者id属性.或者有时候如果页面很庞大,元素很多,也有可能出现两个一不小心定义了两个重复的id的情况.这样就无法进行唯一定位了. 2.xpath 前面所说的id和name属性就相当于是一个人的姓名.你可以通过姓名找到他.但是同名同姓的问题是存在的,而且有时候也不知道他的

Appium+python自动化(三十九)-Appium自动化测试框架综合实践 - 代码实现(超详解)

简介 前边一直在分享testng的相关文章,看了点赞量和阅读数不是很高,宏哥猜测估计是大家确实是用不到或者不喜欢吧!不过宏哥经过一段时间的准备,appium的自动化测试框架完善的差不多了,那么接下来宏哥继续给小伙伴和童鞋们分享有关Appium自动化测试框架综合实践.想必小伙伴们有点等不及了吧! driver配置封装 kyb_caps.yaml 配置表 主要是一些配置信息的封装. 参考代码 platformName: Android #模拟器 platformVersion: 5.1.1 devi

基于UI Automation的自动化测试框架 .

http://blog.csdn.net/roger_ge/article/details/5531941 第一部分:前言 自动化测试或许是众多测试同行都在研究或准备研究的领域.结合自己的能力和公司的状况,选择合适的自动化工具.搭建正确而又高效的框架或许是个永远讨论不完的话题,正如应了那句话,没有最好,只有更好. 个人所在的公司当前开展的很多项目都是基于Win7和WPF开发的,之前想尝试用QTP对之进行录制和回放操作,不幸的是,需要额外的WPF插件支持:另外QTP的脚本语言是VBScript,虽

基于Ruby的Watir-WebDriver自动化测试框架

Watir-WebDriver       —— 软件测试的自动化时代 QQ群:160409929 支持哪些浏览器? 几乎所有的浏览器: 比如Firefox, Chrome 和IE,除了Safari. 支持网页上哪些元素? watir-webdriver支持所有的HTML元素 运行模式是什么? Watir-WebDriver是基于ruby开发web驱动框架 自动化测试框架 根据不同业务开发相应自动化用例,由Ruby测试框架统一调用分析展示.实现出入口统一,工具类封装:降低用例开发复杂度,框架统一

Appium Python 五:元素定位

总结 单个元素定位: driver.find_element_by_accessibility_id(id) driver.find_element_by_android_uiautomator(uia_string) driver.find_element_by_class_name(name) driver.find_element_by_css_selector(css_selector) driver.find_element_by_id(id_) driver.find_element

Appium学习笔记4_元素定位方法

Appium之元素定位,如果对Android上如何使用工具获取页面元素有问题的,请转战到这:http://www.cnblogs.com/taoSir/p/4816382.html. 下面主要是针对自己的了解和学习,简单的总结下关于Appium native APP上的一些元素定位方法的使用以及通过UI Automator Viewer定位页面以后,如果从上面定位到你想使用的元素. 已淘宝为例,来进行元素的定位.打开UI Automator Viewer Appium和Webdriver有一点区

Appium中app的元素定位

app定位方式,本文只讲Android手机的定位方式. 前提条件是adb连接到模拟器或者是手机(具体连接方式这里不再讲解),证明已连接到设备 adb devices app元素定位工具一:UI Automator Viewer 这个工具是Android SDK自带的一个定位工具,具体页面截图如下: app元素定位工具二:Appium工具 启动Appium,启动之后,页面有一个放大镜的按钮,如图所示: 点击放大镜按钮,进入配置项,如果所示: platformName  -- 系统名称 platfo

python+Appium自动化:id元素定位

元素定位 与web自动化一样,app自动化元素定位也是非常重要的一环,,appium也是提供了很多元素定位的方法,比如:id.name.class.层级定位等等. 元素定位方式 id name class List定位 相对定位 Xpath定位 H5页面元素定位 Uiautomator定位 首先可以进入SDK中的tools文件夹中打开uiautimatorviewer.bat,用于元素定位 测试场景,启动淘宝app,同意温馨提示,进入首页 id定位 Appium中可以使用find_element