繁体   English   中英

如何在try-catch块中使用.click()命令

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM