#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 выглядит следующим образом.
Я пытался нажать/нажать на кнопку «Доступ». Но ничего не произошло. Я также попробовал фрагмент кода, используя метод click() следующим образом вместо метода tap.
elements.get(0).click();
Но и это тоже не сработало. Это может быть потому clickable=false
, что .
Кто-нибудь может, пожалуйста, помочь мне с этим?