在测试中验证动态文本

时间:2018-10-18 12:57:52

标签: testing katalon-studio regression-testing

我正在尝试验证我的应用程序中的密码。我正在使用Katalon,但找不到答案。

我需要验证的密码长度相同,但每次运行测试时都不同,并且在我的页面上看起来像这样:密码:4938475948。

我如何计算每次运行测试时更改的数字?

我尝试了以下正则表达式:

Office.cast.item.toAppointment(Office.context.mailbox.item)
outlook-web-16.01.debug.js:10346 Uncaught Error: Sys.ArgumentTypeException: 
Object cannot be converted to the required type.

注意:这是用Selenium编码的,并转换为Katalon。

3 个答案:

答案 0 :(得分:1)

在Katalon中,结合使用WebUI.getText()WebUI.verifyMatch()做同样的事情。

例如

TestObject object = new TestObject().addProperty('xpath', ConditionType.EQUALS, '//*[@id='RegItemContent0']/div/table/tbody/tr/td[2]/table/tbody/tr[2]/td/div[1]/div[3]/ul/li[2]/span')
def actualText = WebUI.getText(object) 
def expectedText = '4938475948'
WebUI.verifyMatch(actualText, expectedText, true)

如果需要,还可以使用toInteger()toString()常规方法来转换类型。

答案 1 :(得分:1)

编辑上例,但要使其正常工作

 TestObject object = new TestObject().addProperty('xpath', ConditionType.EQUALS, '//*[@id='RegItemContent0']/div/table/tbody/tr/td[2]/table/tbody/tr[2]/td/div[1]/div[3]/ul/li[2]/span')
        def actualText = WebUI.getText(object) 
        def expectedText = '4938475948'
        WebUI.verifyMatch(actualText, expectedText, true)

这可以作为变量来完成,但是在您的情况下,我建议使用一些Java

import java.util.Random;

Random rand = new Random();

int  n = rand.nextInt(9000000000) + 1000000000;
// this will also cover the bad PIN (above limit)

答案 2 :(得分:0)

由于您的密码每次都相同,我只需要对正则表达式进行一些调整:您可以限制正则表达式所查找的位数,并确保以下字符为空白(即不是数字,或其他流浪字符)。最后,使用“ true”标志让WebUI.verifyMatch()知道它应该从第二个字符串中获取正则表达式(regex必须是第二个参数)。

def regexExpectedText = "PIN Code: ([0-9]){10}\\s"
TestObject pinCodeTO = new TestObject().addProperty('xpath', ConditionType.EQUALS, '//*[@id='RegItemContent0']/div/table/tbody/tr/td[2]/table/tbody/tr[2]/td/div[1]/div[3]/ul/li[2]/span')
def actualText = WebUI.getText(pinCodeTO) 

WebUI.verifyMatch(actualText, expectedText, true)

希望有帮助!