使用Selenium在android中的状态栏高度

时间:2015-11-14 11:38:21

标签: selenium-webdriver automation appium

我一直致力于Appium测试,并编写用于自动化测试的Java代码。对于一个问题,我需要确定Android设备/模拟器的状态栏的高度。 Web驱动程序getSize()方法包括完整的屏幕,因此也包括状态栏的高度。有没有办法单独识别状态栏的高度?

我尝试过的是通过id:com.android.systemui:id / status_bar查找状态栏,但是findElementById()会抛出异常:“使用给定的搜索参数无法在页面上找到元素。”我认为,它只在应用程序屏幕区域中找到id,因此它找不到状态栏ID。 任何帮助/提示将不胜感激。

2 个答案:

答案 0 :(得分:0)

您可以检查appium检查员或uiautomationviewer以获取屏幕截图。从那里,您将能够找到状态栏项目及其定位器属性。它包括状态栏的高度宽度。一旦找到状态栏元素,您也可以从自动化代码中找到相同的内容。

答案 1 :(得分:0)

因为我在搜索相关主题时偶然发现了这个,所以我决定在这里创建我的第一个评论,即使这是一个非常古老的帖子......

截至今天,AndroidDriver 在其功能中返回状态栏高度。 在 C# 中,您可以从以下位置获取该信息:

AndroidDriver<AppiumWebElement> driver = new AndroidDriver<AppiumWebElement>(appiumHubUrl, desiredCapabilities);
object statBarHeightObj = driver.Capabilities.GetCapability("statBarHeight");
// go on with conversion....

这些功能甚至可以显示有关 ViewPort Rectangle 和像素比率的信息,这在处理混合应用程序时可能会派上用场。