【问题标题】:Select image in android emulator gallery - Selenium With Java在 android 模拟器库中选择图像 - Selenium With Java
【发布时间】:2015-08-06 14:47:23
【问题描述】:

我正在尝试使用带有 selenium Java 的 appium 从图库中自动选择 android 模拟器图像。

问题是我无法从 selenium Java 的图库中选择图像。

我已将名为 jerry.png 的图像推送到 android 模拟器 sdcard - 图库。

我尝试了以下方法,但它不起作用。

driver().findElement(By.id("com.android.graphics.drawable:id/jerry")).click();

如何在安卓模拟器库中选择图片?

【问题讨论】:

    标签: java android selenium android-emulator


    【解决方案1】:

    您必须首先在列表数组中获取所有图像,然后您可以单击特定的,见下文:

    单张图片选择

    List <WebElement> images = driver.findElements(By.xpath(YOUR IMAGE ID/XPATH));
    
    System.out.println(images.size());
    
    if(images.size()>0)
    {
    
    driver.findElement(By.xpath(YOUR IMAGE ID/XPATH)).click();} 
    

    用于多张图片选择

     List <WebElement> pics = driver.findElements(By.xpath(YOUR IMAGE ID/XPATH));
    
    for(int x=0;x<5;x++)
    
    {
    
        pics.get(x).click();
    
    
    }
    

    我建议使用 xpath 来查找图像。

    【讨论】:

    • 什么是 xpath?我无法获得图像的确切 xpath?我也无法获得图像ID?我该怎么做?
    • 试试这个 xpath : //android.widget.GridView//android.widget.ImageView[1] 你用的是哪个设备?
    • 我正在使用安卓模拟器。设备名称是模拟器 5554,android 版本 4.4
    • //android.widget.GridView//android.widget.ImageView[1] 不起作用.. 画廊中图像的资源 ID 是什么?有什么例子吗?
    • 这里你会得到画廊的资源 id,然后是图片的 xpath...所有图片都有相同的资源 id,所以我更喜欢 xpath。
    【解决方案2】:

    使用坐标选择图像,

    HashMap<String, Double> map = new HashMap<String, Double>();
    map.put("x", xCoordinate);
    map.put("y", yCoordinate);
    ((JavascriptExecutor) webDriver).executeScript("mobile: tap", map);
    

    在emualtor的开发者选项中打开“显示触控”和“指针位置”选项可以获得坐标。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-12
      • 1970-01-01
      • 2011-07-15
      • 1970-01-01
      • 1970-01-01
      • 2021-08-20
      相关资源
      最近更新 更多