首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在katalon studio中使用selenium等待,Groovy

在katalon studio中使用selenium等待,Groovy
EN

Stack Overflow用户
提问于 2018-12-18 00:35:07
回答 2查看 848关注 0票数 1

因此,我一直在尝试实现从selenium到katalon groovy脚本的等待功能,但我一直收到以下行的错误

代码语言:javascript
运行
复制
   WebUI.wait.Until(FindElement(By.XPath("//*[contains(text(), 'Fund Metrics Trend']")), 10)

如果有人能告诉我为什么会出现以下错误,下面是我的代码:

原因:[0;39M [31mgroovy.lang.MissingPropertyException:没有这样的属性:等待类: com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:194)[0;39m [31m at Tabs权限(Tab权限:54)][0;39M [31m at com.kms.katalon.core.main.ScriptEngine.runScriptAsRawText(ScriptEngine.java:119)[0;][0;39M at 31mgroovy.lang.MissingPropertyException [31m at com.kms.katalon.core.main.ScriptEngine.runScriptAsRawText(ScriptEngine.java:119)[0;39米[ com.kms.katalon.core.main.TestCaseExecutor.runScript(TestCaseExecutor.java:321)[0;39m处31米[ com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:312)[0;39m处31米[ com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:291)[0;39m处31米[ com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:283)[0;处31米39m [ com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:222)[0;39m的31M[ com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:106)[0;39m的31M] com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:97)[0;39m的31M[ com.kms.katalon.core.main.TestCaseMain$runTestCase$0.call(Unknown源的31M][0;39M[ TempTestCase1545063637352.run(TempTestCase1545063637352.groovy:22)[0;的31M39M2018-12-17 11:21:19.430 [1;31mERROR[0;39m [36mc.k.katalon.core.main.TestCaseExecutor -[0;39m [31m标签测试用例/标签权限失败][0;39m [31m原因:[0;39M [31mgroovy.lang.MissingPropertyException:无此类属性:等待类: com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords[0;39m [31M标签页Permissions.run(标签权限:54)][0;39米[ com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:194)[0;39m处31米[ com.kms.katalon.core.main.ScriptEngine.runScriptAsRawText(ScriptEngine.java:119)[0;39m处31米[ com.kms.katalon.core.main.TestCaseExecutor.runScript(TestCaseExecutor.java:321)[0;39m处31米[ com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:312)[0;处31米39米[ com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:291)[0;39m处31米[ com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:283)[0;39m处31米[ com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:222)[0;39m处31米[ com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:106)[0;处31米39m [31m at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:97)[0;39m [31m at com.kms.katalon.core.main.TestCaseMain$runTestCase$0.call(Unknown Source] [0;39m [31m at TempTestCase1545063637352.run(TempTestCase1545063637352.groovy:22)[0;39m 2018-12-17 11:21:19.430 ]34mINFO[0;39M [36mc.k.katalon.core.main.TestCaseExecutor -[0;39m [39mEND测试用例/选项卡权限

代码语言:javascript
运行
复制
   import static com.kms.katalon.core.checkpoint.CheckpointFactory.findCheckpoint
   import static com.kms.katalon.core.testcase.TestCaseFactory.findTestCase
   import static com.kms.katalon.core.testdata.TestDataFactory.findTestData
   import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject
   import com.kms.katalon.core.checkpoint.Checkpoint as Checkpoint
   import com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords as CucumberKW
   import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords as Mobile
   import com.kms.katalon.core.model.FailureHandling as FailureHandling
   import com.kms.katalon.core.testcase.TestCase as TestCase
   import com.kms.katalon.core.testdata.TestData as TestData
   import com.kms.katalon.core.testobject.TestObject as TestObject
   import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS
   import internal.GlobalVariable as GlobalVariable

   import org.openqa.selenium.WebDriver
   import org.openqa.selenium.chrome.ChromeDriver
   import org.openqa.selenium.support.ui.WebDriverWait
   import com.kms.katalon.core.webui.driver.DriverFactory
   import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI

   //set Web UI delay between actions to 2 seconds Project, Settings, Execution, Default, Web UI

   TestData data = findTestData('Investor/Notes')
   //TestData data = findTestData('temp')

   WebUI.openBrowser('')
   WebDriver driver = DriverFactory.getWebDriver()



   WebUI.navigateToUrl(GlobalVariable.url)
   WebUI.maximizeWindow()


   WebDriverWait wait = new WebDriverWait(driver, long time=10)

   for (def index : (0..data.getRowNumbers() - 1)) {

    WebUI.setText(findTestObject('Login/Screen Elements/input_username'),               data.internallyGetValue('username', index))
       WebUI.setText(findTestObject('Login/Screen Elements/input_password'), data.internallyGetValue('password', index))
WebUI.click(findTestObject('Login/Screen Elements/button_Login'))
if ((data.internallyGetValue('username', index) == 'jasmine') || (data.internallyGetValue('username', index) == 'pefadmin4') || (data.internallyGetValue('username', index) == 'pefreviewer4') || (data.internallyGetValue('username', index) == 'pefreadonly4') || (data.internallyGetValue('username', index) == 'fundaccounting4'))  {
    WebUI.click(findTestObject('Client/a_DFW Capital Partners'))
    WebUI.click(findTestObject('Object Repository/Fund/a_DFW Capital Partners V L.P.'))
    WebUI.verifyElementPresent(findTestObject('Object Repository/Tabs Permissions/a_Dashboard'), 10)
    WebUI.delay(3)
    WebUI.wait.Until(FindElement(By.XPath("//*[contains(text(), 'Fund Metrics Trend']")), 10)
    WebUI.delay(3)
    WebUI.verifyTextPresent("Fund Metrics Trend", false)

附言:这只是我的代码的上半部分,其他的都运行得很好。

EN

回答 2

Stack Overflow用户

发布于 2018-12-18 15:19:42

在Katalon Studio中,您可以替换此行

代码语言:javascript
运行
复制
WebUI.wait.Until(FindElement(By.XPath("//*[contains(text(), 'Fund Metrics Trend']")), 10)

如下所示(将创建测试对象,然后执行等待):

代码语言:javascript
运行
复制
TestObject fundMetricsTrend = new TestObject().addProperties("xpath", ConditionType.EQUALS, "//*[contains(text(), 'Fund Metrics Trend']") //this is the test object definition
WebUI.waitForElementPresent(fundMetricsTrend, 10)

注意:

您将需要导入这些

代码语言:javascript
运行
复制
import com.kms.katalon.core.testobject.TestObject as TestObject
import com.kms.katalon.core.testobject.ConditionType

此外,您可以尝试各种WebUI.waitFor_______()函数中的任何一个,以更好地满足您的需求。

票数 1
EN

Stack Overflow用户

发布于 2018-12-18 14:27:58

您收到错误消息是因为'wait‘在WebUI类中不可用。在Katalon Studio中使用wait的一个示例是:

代码语言:javascript
运行
复制
WebUI.waitForElementPresent(findTestObject('findTestObject('Login/Screen Elements/input_username''), 
        0)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53819391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档