在保存在对象存储库中的对象中,是否可以更改“选定的定位器”,以便在运行时进行更改?

时间:2019-05-23 06:46:31

标签: parameters automation katalon-studio

我只是这个应用程序的新手,由于我不知道要搜索的确切字词/术语,因此我很难找到代码。

因此,我创建了一个仅在“选定的定位器”中具有值的对象: enter image description here

是否可以在此字段中添加变量?我想在本节中应用变量:

/tbody/tr[2]/td[2]/span

我计划将tr[2]td[2]都随机化。

或者,如果可能的话,另一个选择会覆盖整个“选定的定位器”字段?

TIA!

3 个答案:

答案 0 :(得分:0)

希望以下解决方案可以帮助您

首先,如下图所示更新对象存储库中的测试对象 enter image description here

在您的测试用例的测试脚本中可以如下处理:

KeywordLogger log = new KeywordLogger();

// Find test object
def toSpanDate = ObjectRepository.findTestObject("Object Repository/span_Date Follow Up Day");

// Get value of xpath property to replace row number and column number as expectation
def originalXpath = toSpanDate.findPropertyValue('xpath');

// Replace value
def newXpath = originalXpath.replace('pRowNumber', '2');
newXpath = newXpath.replace('pColumnNumber', '2');

// Update xpath property value of test object
toSpanDate = WebUI.modifyObjectProperty(toSpanDate, 'xpath', 'equals', newXpath, true);

// Get new value of xpath property to double check
def currentXpathOfSpan = toSpanDate.findPropertyValue('xpath');
log.logInfo('currentXpathOfSpan: ' + currentXpathOfSpan);

执行结果: enter image description here

答案 1 :(得分:-1)

Here's关于在Katalon Studio中使用参数化测试对象的简短教程。

a)

但是,如果您知道如何以脚本模式编写,则可以直接在脚本中创建对象:

TestObject followUpDay = new TestObject.addProperty("xpath", ConditionType.EQUALS, "/tbody/tr[2]/td[2]/span")

导入了以下类

import com.kms.katalon.core.testobject.ConditionType
import com.kms.katalon.core.testobject.TestObject as TestObject

b)

现在,让我向您展示如何使用Groovy字符串插值将变量添加到对象中。

此代码与上面的代码等效:

String xpathToObject = "/tbody/tr[2]/td[2]/span"
TestObject followUpDay = new TestObject.addProperty("xpath", ConditionType.EQUALS, xpathToObject)

但是,如果希望添加变量(例如,用于选择行号和列号),则可以使用字符串插值来更改xpathToObject字符串:

def rowNumber = 2
def colNumber = 2
String xpathToObject = "/tbody/tr[${rowNumber}]/td[${colNumber}]/span"

答案 2 :(得分:-1)

通过创建parametrized web object

  • 从对象库中打开对象
  • 选择“属性”作为选择方法
  • 单击对象属性中的“添加”按钮
  • Name设置为xpathToObject,将Match condition设置为equals,将Value设置为..../tbody/${variableA}/${variableB}/span(注意:我没有写完整的xpath ,因为它很长,我无法从屏幕截图中复制和粘贴

您现在可以使用以下语法调用该对象

findTestObject('{your test object}', [('{property}') : '{value of property}'])

或者,就您而言:

findTestObject('span_Date Follow Up Day', [('variableA'):'tr[2]', ('variableB'):'td[2]'])

然后您可以根据需要更改variableAvariableB和/或在xpath字符串的任何部分中使用参数。