【发布时间】:2020-02-23 22:43:36
【问题描述】:
我想为“自定义等待”功能创建第 3 方 jar 文件,该文件将在 Katalon Studio 测试用例中进一步使用,通过调用“waitTillObjectPresent()”来同步测试用例。
我从 Katalon Studio 调用函数的示例如下所示:
在这里,我尝试从 Katalon Studio 调用 java 函数“waitTillObjectPresent()”。
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'))
注意:在上面的代码中,“WaitForObject”是我的Java类,“waitTillObjectPresent”是同一个类中的流利等待方法。
尝试使用以下 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);
}
}
在上面的代码中,我在 2 处遇到错误:
第一个问题:我没有从 Katalon 工作室获得 Java 程序中的 TestObject。
第 2 个问题:我无法使用代码 WebDriver driver = DriverFactory.getWebDriver(); 获取 webdriver 实例
请帮助我,我是 Katalon 工作室的新手。
【问题讨论】:
标签: java selenium selenium-webdriver automated-tests katalon-studio