Вставить условие в xpath Java - PullRequest
       14

Вставить условие в xpath Java

0 голосов
/ 30 января 2019

У меня есть этот экран в приложении для Android.

введите описание изображения здесь

Я пытаюсь запустить метод для проверки числа, отображаемого визображение автомобиля и найдите первое, отличное от нуля, затем нажмите на изображение, которое содержит это число.

Я попробовал этот код:

public void test5_MAP_Assets_Position (String XX) {

        try {
            Assert.assertTrue( Integer.parseInt(XX)>Integer.parseInt("0"));
            driver.findElement(By.xpath("//*[@text='"+XX+"']")) ;
            driver.findElement(By.xpath("//*[@id='view_asset_item_image_view' and (./preceding-sibling::* | ./following-sibling::*) ] and //*[@text>='"+XX+"']")).click();                 
            } 
        catch (AssertionError e) {          
            }   
    }

}

Я получил эту ошибку:

[RemoteTestNG] detected TestNG version 6.14.2
Jan 30, 2019 9:52:27 AM io.appium.java_client.remote.AppiumCommandExecutor$1 
 lambda$0
 INFO: Detected dialect: OSS
 [Utils] [ERROR] [Error] org.testng.TestNGException: 
 Cannot inject @Test annotated Method [test5_MAP_Assets_Position] with 
 [class java.lang.String].
 For more information on native dependency injection please refer to 
 http://testng.org/doc/documentation-main.html#native-dependency-injection
 at org.testng.internal.Parameters.checkParameterTypes(Parameters.java:407)

 FAILED: test5_MAP_Assets_Position org.testng.TestNGException: 
 Cannot inject @Test annotated Method [test5_MAP_Assets_Position] with [class java.lang.String].
 For more information on native dependency injection please refer to 
 http://testng.org/doc/documentation-main.html#native-dependency-injection

Пожалуйста, помогите мне решить эту проблему.

1 Ответ

0 голосов
/ 30 января 2019

XX должна быть локальной переменной, а не параметром метода:

public void test5_MAP_Assets_Position() {
    String XX = "1234";
    try {
        Assert.assertTrue( Integer.parseInt(XX)>Integer.parseInt("0"));
        driver.findElement(By.xpath("//*[@text='"+XX+"']")) ;
        driver.findElement(By.xpath("//*[@id='view_asset_item_image_view' and (./preceding-sibling::* | ./following-sibling::*) ] and //*[@text>='"+XX+"']")).click();                 

Или использовать Параметры с DataProviders

Вы можете использовать данныеПоставщик предоставит значения, которые необходимо проверить.Поставщик данных - это метод в вашем классе, который возвращает массив массивов объектов.

...