[英]how to use .click() command in a try-catch block java android
我试图在使用此代码的try-catch方法捕获nosuchelementexception后单击android应用程序中的元素
try {
driver.findElement(By.xpath("//android.widget.ImageButton[@index='0']")).click();
Thread.sleep(2500);
}
catch(org.openqa.selenium.NoSuchElementException e1) {
Thread.sleep(45000);
driver.findElement(By.id(com.offerup:id/dialog_pos_button)).click();
}
}
但在driver.findElement(By.id(com.offerup:id/dialog_pos_button)).click();
它说, com.offerup
cannont解析为一个类型, dialog_pos_button
不能被解析为一个变量
有谁知道如何解决这个问题?
这是我想要的能力
File OfferUp = new File("C:\\Users\\boung\\Desktop\\com.offerup.apk");
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability("deviceName", "Virtual Device");
cap.setCapability("platformName", "android");
cap.setCapability("null", "OfferUp");
cap.setCapability("appPackage", "com.offerup");
cap.setCapability("appActivity",
"com.offerup.android.activities.SearchActivity");
Appium中没有任何“空”功能。 如果您的设备中未安装应用,则需要提供提供应用功能。
更改cap.setCapability(“ null”,“ OfferUp”); 至
cap.setCapability("app", /path/to/.apk/file);
如果您以DesiredCapability提供应用程序,则无需提供appPackage和appActivity功能。
不建议使用Thread.sleep() 。 使用ExplicitWait()方法。
为什么要在catch方法中单击按钮? 如果从catch块抛出错误怎么办? 您必须为此更改逻辑。 首先使用.isDisplayed()方法检查元素是否可见。 然后,如果存在element,请单击该元素。
请尝试以下:
File filePath = new File(System.getProperty(“ user.dir”)); 文件appDir = new File(filePath,“ / app”); File app = new File(appDir,“ com.offerup.apk”); DesiredCapabilities上限=新的DesiredCapabilities(); cap.setCapability(“ app”,app.getAbsolutePath()); cap.setCapability(“ deviceName”,“虚拟设备”); cap.setCapability(“ platformName”,“ android”); driver = new AndroidDriver(new URL(“ http://0.0.0.0:4723/wd/hub”),cap );
或尝试使用其他定位器来识别特定元素
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.