Appium не выполняет щелчок или нажатие на эмулятор для элемента, имеющего значение clickable=false и enabled=true

#java #selenium #appium #appium-android

Вопрос:

Я пытаюсь практиковать автоматизацию собственных приложений, но застрял из-за одной проблемы. Щелчок и касание не выполняются в эмуляторе, который я пытался открыть. При проверке DOM с помощью «uiautomatorviewer» я увидел, что атрибут clickable и все остальные атрибуты были ложными для элемента, а только разрешенный атрибут был истинным. Ниже приведен фрагмент кода, который я пытался использовать для нажатия на элемент.

     import java.io.File;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.util.List;
    
    import org.openqa.selenium.By;
    import org.openqa.selenium.Point;
    
    import org.openqa.selenium.remote.DesiredCapabilities;
    
    import io.appium.java_client.AppiumDriver;
    import io.appium.java_client.MobileDriver;
    import io.appium.java_client.MobileElement;
    import io.appium.java_client.TouchAction;
    import io.appium.java_client.android.AndroidDriver;
    import io.appium.java_client.android.AndroidElement;
    import io.appium.java_client.remote.MobileCapabilityType;
    import io.appium.java_client.touch.TapOptions;
    import io.appium.java_client.touch.offset.PointOption;
    
        public class Appium_Base {
                public static void main(String[] args) throws Exception {
                // TODO Auto-generated method stub
                File f = new File("src");
                File fs = new File(f,"ApiDemos-debug.apk");
                DesiredCapabilities caps=new DesiredCapabilities();
                caps.setCapability(MobileCapabilityType.DEVICE_NAME, "Pratik_Emulator");
                caps.setCapability(MobileCapabilityType.PLATFORM_NAME, "ANDROID");
                caps.setCapability(MobileCapabilityType.APP, fs.getAbsolutePath());
                
                AppiumDriver<MobileElement> driver = new AppiumDriver<>(new URL("http://127.0.0.1:4723/wd/hub"),caps);
                
                Thread.sleep(10000);
                List<MobileElement> elements=driver.findElements(By.className("android.widget.TextView"));
                Thread.sleep(5000);
                Point location = elements.get(0).getLocation();
                TouchAction action = new TouchAction(driver);
                action.tap(PointOption.point(location.x, location.y)).perform();
                
                System.out.println("Clicked");
        
                Thread.sleep(10000);        
            }
        }
 

Щелчок печатается на консоли, но он не был выполнен в эмуляторе. Изображение эмулятора и журнала сервера appium выглядит следующим образом.Tap_image_appium_server_emulator

Я пытался нажать/нажать на кнопку «Доступ». Но ничего не произошло. Я также попробовал фрагмент кода, используя метод click() следующим образом вместо метода tap.

 elements.get(0).click();
 

Но и это тоже не сработало. Это может быть потому clickable=false , что .

Кто-нибудь может, пожалуйста, помочь мне с этим?