appium_2 查找元素

AndroidDriver类
继承图
这里写图片描述
主要方法
这里写图片描述
可以看出主要是findElementByAndroidUIAutomator 要借助android sdk自带的uiautomatorviewer.bat 工具

具体方法 测试成功的
参考
1、通过类名的方法

 By by1 = By.className("android.widget.Button");
        WebElement el = driver.findElement(by1);
        el.click();

此方法一会获取到多个
2、通过resouceId 只适合4.3以上的
这里写图片描述
只有android 4.3以上才会看到resouceId,具以下方法才能找得到元素
代码如下

By by2 = By.id("cn.chinagps.jicha:id/car_license_et"); //
TouchableElement e2 = (TouchableElement) driver.findElement(by2);

3、通过android:contentDescription属性
uiautomatorviewer.bat中的content-desc属性
对应的方法

driver.findElementByAccessibilityId("button");

4、xpath

 driver.findElementByXPath("//android.widget.Button[contains(@text,'buttontext')]").click();

@text 是button的text属性
//不可省图
5、UIAutomator

driver.findElementByAndroidUIAutomator("new UiSelector().text(\"buttontext\")").click();
driver.findElementByAndroidUIAutomator("new UiSelector().className(\"android.widget.Button\")").click();
driver.findElementByAndroidUIAutomator("new UiSelector().className(\"android.widget.Button\").instance(0)").click();

instance(0) button中的第一个元素
\” 不能替换到’
6、通过name

  driver.findElementByName("buttontext").click();

name android的text属性

7、查看界面关系

  driver.getPageSource();

界面的xml文件

详情参考

您可以使用 Appium 的 `TouchAction` 类来实现滚动查找。下面是一个示例代码,演示如何在 Android 设备上使用 Appium 进行滚动查找: ```python from appium import webdriver from appium.webdriver.common.touch_action import TouchAction from appium.webdriver.common.mobileby import MobileBy desired_caps = { 'platformName': 'Android', 'deviceName': 'your_device_name', 'appPackage': 'your_app_package', 'appActivity': 'your_app_activity' } driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) # 按照您的需求进行滚动查找 def scroll_to_element(element_text): while True: try: element = driver.find_element(MobileBy.ANDROID_UIAUTOMATOR, 'new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains("' + element_text + '").instance(0));') return element except: # 如果找不到元素,继续向下滚动 action = TouchAction(driver) action.press(x=500, y=1600).move_to(x=500, y=300).release().perform() # 使用示例:滚动查找文本为 "Hello World" 的元素 element = scroll_to_element("Hello World") element.click() # 关闭 driver driver.quit() ``` 请注意,您需要将 `your_device_name` 替换为您的设备名称,`your_app_package` 和 `your_app_activity` 替换为您要测试的应用程序的包名和活动名。 此外,您还可以根据您的应用程序的具体情况进行修改和调整。希望对您有所帮助!如果您还有其他问题,请随时提问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值