cómo obtener el XPath de testObject de Katalon estudio en archivo jar tercera parte

user3302083:

Quiero crear archivo jar tercera parte de la funcionalidad "Adaptar espera", que será aún más su uso en Katalon Casos de estudio de prueba para sincronizar el caso de prueba llamando "waitTillObjectPresent ()".

Muestra de mi función llamando desde Katalon Estudio sería como a continuación:
Aquí estoy tratando de función de llamada java "waitTillObjectPresent ()" de Katalon estudio.

  WebUI.navigateToUrl('https://www.companysite.com/en')
//Wait for element till present upto 10 sec.
        WaitForObject.waitTillObjectPresent'(findTestObject('V3-Web/WaitForObject/Page_Livtten/button_Results'), 10)
        WebUI.click(findTestObject('V3-Web/WaitForObjectDemo/Pagetten/button_Results'))

Nota: En el código anterior "WaitForObject" es mi clase Java y "waitTillObjectPresent" es el método de espera con fluidez en una misma clase.

Tratado con el siguiente código de Java:

public void waitTillObjectPresent(TestObject to, int waitingtime){
// HERE IS ISSUE, I am not getting TestObject from Katalon Studio calling method 

   int counter=0;
   String locator= object.findPropertyValue('xpath');

    System.out.println("xpath is:: " + locator);
    WebDriver driver = DriverFactory.getWebDriver();
  // HERE IS ISSUE, I am not able to getting  WebDriver instance from Katalon Studio 

    // fluent wait method 
            Wait wait = new FluentWait(driver )
            .withTimeout(waitingtime, TimeUnit.SECONDS)
            .pollingEvery(1000, TimeUnit.MILLISECONDS)
            .ignoring(WebElementNotFoundException.class)

            WebElement ele = (WebElement) wait.until(new Function<WebDriver, WebElement>()  {
                public WebElement apply(WebDriver driver) {
                    counter ++
                    return driver.findElement(By.xpath(locator));
                }
            });
    System.out.println("Waiting time for Object ::: "+ object+" ::: rendering is :::: " +counter*700 +"  ::: miliseconds ie in seconds ::: " +(counter*700)/1000);
    }
}

En el código anterior que estoy recibiendo errores en 2 puntos:

1ª EDICIÓN: No estoy recibiendo el TestObject en el programa Java desde el estudio Katalon.

2ª EDICIÓN: No soy capaz de obtener la instancia WebDriver con el código WebDriver driver = DriverFactory.getWebDriver();

amablemente me ayuda soy nuevo en el estudio Katalon.

user1999758:

Aquí es la mejor solución:

1ª EDICIÓN: No estoy recibiendo el TestObject en el programa Java desde el estudio Katalon.

Para el problema anterior, no se puede obtener el valor del objeto como éste String locator= object.findPropertyValue('xpath');que tiene que hacer algo como esto para obtener los valores de objeto

public static String  getFieldNamesAndValues(final Object obj, boolean publicOnly)
            throws IllegalArgumentException, IllegalAccessException {
        Class<? extends Object> c1 = obj.getClass();
        System.out.println("Class value is c1:::" + c1);
        Map<String, Object> map = new HashMap<String, Object>();
        Field[] fields = c1.getDeclaredFields();
        System.out.println("Fields in objects :: " + fields.toString());
        System.out.println("Xpath Before for loop::: " + fields.getClass());
        for (int i = 0; i < fields.length; i++) {
            String name = fields[i].getName();
            System.out.println("Fields name ::: " + name);
            if (publicOnly) {
                if (Modifier.isPublic(fields[i].getModifiers())) {
                    Object value = fields[i].get(obj);
                    map.put(name, value);
                }
            } else {
                fields[i].setAccessible(true);
                Object value = fields[i].get(obj);
                map.put(name, value);
            }
        }
        System.out.println("Return on object is ::::--> " + map.get("selectorCollection").toString());
        return (String) map.get("selectorCollection");
    }

Y llamar al programa anterior getFieldNamesAndValues(Testobject, false)en lugar de hacerloString locator= object.findPropertyValue('xpath');

2ª EDICIÓN: No soy capaz de obtener la instancia WebDriver con el conductor código WebDriver = DriverFactory.getWebDriver ();

Para el segundo problema: pasar a la instancia DriverFactory.getWebDriver () desde el estudio Katalon a Java como éste

//Wait for element till present upto 10 sec.
        WaitForObject.waitTillObjectPresent'(DriverFactory.getWebDriver() , findTestObject('V3-Web/WaitForObject/Page_Livtten/button_Results'), 10)

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=331054&siteId=1
Recomendado
Clasificación