【转】Appium 获取元素控件及其属性,服务端1.7.1支持

转自:https://blog.youkuaiyun.com/qq_37951066/article/details/79457900

1、打开appium

2、点击右上角放大镜标志



3、进入如下图




4、在Desired Capabilities 下填写需要获取APP元素的配置。点击Save As保存下来

5、点击 Start Session 启动,进入如下图所示


				<script>
					(function(){
						function setArticleH(btnReadmore,posi){
							var winH = $(window).height();
							var articleBox = $("div.article_content");
							var artH = articleBox.height();
							if(artH > winH*posi){
								articleBox.css({
									'height':winH*posi+'px',
									'overflow':'hidden'
								})
								btnReadmore.click(function(){
									articleBox.removeAttr("style");
									$(this).parent().remove();
								})
							}else{
								btnReadmore.parent().remove();
							}
						}
						var btnReadmore = $("#btn-readmore");
						if(btnReadmore.length>0){
							if(currentUserName){
								setArticleH(btnReadmore,3);
							}else{
								setArticleH(btnReadmore,1.2);
							}
						}
					})()
				</script>
				</article>
### 如何使用 Appium 获取移动应用页面元素 #### 使用定位策略获取页面元素 为了有效地操作和验证应用程序的状态,了解如何通过不同的定位策略来选取页面上的元素至关重要。常见的定位方式包括 ID、类名、XPath 和 Accessibility ID 等。 对于基于 Android 的应用程序而言,通常推荐优先考虑使用 `resource-id` 属性作为选择器[^1]: ```java // Java - Using resource id to find an element on Android WebElement element = driver.findElementByAndroidUIAutomator("new UiSelector().resourceId(\"com.example.app:id/button\")"); ``` 而对于 iOS 应用程序,则更倾向于利用 accessibility identifiers 来定位控件: ```swift // Swift/Objective-C - Accessing elements via accessibility identifier on iOS XCUIApplication().buttons["submit"].tap() ``` 当面对复杂的界面结构或是动态加载的内容时,XPath 表达式提供了更大的灵活性,尽管其性能可能不如其他方法高效: ```python # Python - Locating elements using XPath, suitable for both platforms but less preferred due to performance concerns element = driver.find_element_by_xpath("//android.widget.Button[@text='Submit']") ``` #### 实现用户交互与状态验证 一旦获得了目标元素的引用,就可以对其进行各种操作,如点击、输入文本等。此外,还可以读取属性值来进行断言检查,确保预期的行为发生。 例如,在提交表单之前设置输入框内的文字,并确认按钮是否可用: ```javascript // JavaScript - Setting text and verifying button state before submission await driver.elementSendKeys('inputField', 'Test Input'); const isEnabled = await driver.isElementEnabled('submitButton'); console.log(`Is Submit Button Enabled? ${isEnabled}`); if (isEnabled) { await driver.click('submitButton'); } ``` #### TouchActions 类用于模拟触摸事件 除了基本的操作外,有时还需要模仿真实的多指触碰动作,这时可以借助于 `TouchAction` API 来构建自定义的手势序列。 下面是一个简单的例子展示了怎样创建一个滑动手势以滚动列表项: ```csharp // C# - Creating a swipe gesture with TouchAction class var action = new TouchAction(driver); action.Press(x: startX, y: startY).Wait(500).MoveTo(x: endX, y: endY).Release().Perform(); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值