无法获取屏幕中存在的对象的位置-Appium(Android)

时间:2019-03-30 00:46:07

标签: javascript android appium webdriver-io

我无法通过 Appium 获取 Android 屏幕中存在的元素的位置。

我检查了http://appium.io/docs/en/commands/element/attributes/location/上有关getLocation()方法的文档,但没有获得元素位置的信息。

我尝试了整个对象:

console.log("Get location object: " + driver.getLocation('android=new UiSelector().resourceId("io.appium.android.apis:id/text"))'));

并且具有特定值(X):

console.log("Get location parameter 'x': " + driver.getLocation('android=new UiSelector().resourceId("io.appium.android.apis:id/text"))').x); 

我希望从响应中获得X和Y值,但是我在控制台中收到以下值:

  

获取位置对象:[object Object]

     

获取位置参数“ x”:undefined

2 个答案:

答案 0 :(得分:0)

我认为文档中的示例不正确。它应该像this一样工作:

const text = browser.$('android=new UiSelector().resourceId("io.appium.android.apis:id/text"))')
const location = text.getLocation();
console.log(location); // outputs: { x: ..., y: ... }

您首先需要获取一个元素对象,然后使用其API获取位置。

browser.getLocation()是要获取GPS坐标

答案 1 :(得分:0)

您可以尝试使用Appium Studio。有了它,很容易获得元素的位置

String locationX = client.elementGetProperty("NATIVE", "your-xpath-here", 0, "X");
String locationY = client.elementGetProperty("NATIVE", "your-xpath-here", 0, "Y");

这是分别获取X和Y坐标。有关详细说明,请查看文档here