Katalon WebUI.SetMaskedText()随机包装文本

时间:2018-12-04 16:28:07

标签: testing automated-tests katalon-studio

我在弹出窗口中有一个字段,用于输入带掩码文本的电话号码:“(_ _ _)_ _ _ _-_ _ _ _ _”。

(屏蔽的文本表示我们正在使用jquery自动格式化输入的文本。您可以了解更多here。)上面的下划线只是代表电话号码的空格。 :)

结果

输入时,代码会随机包装文本。我试过使用字符串作为'8015558245',并屏蔽为'(801)555-8245',两者都随机包装结果:

  • (015)558-2458
  • (155)582-4580
  • (555)824-5801

在许多互联网搜索中,我发现的唯一建议是先双击该元素,这不会影响结果。每次我以隐身模式运行测试时。有时它会起作用,其余时间都会失败。

代码

这是我的代码:

TestObject enterPhoneNumber = findTestObject('path/PhoneNumberObject')
WebUI.doubleClick(enterPhoneNumber)
WebUI.setMaskedText(enterPhoneNumber, '8015558245')

规格

我正在使用Katalon v5.9.1,但在较早的版本上也无法使用。

Chrome是浏览器。

3 个答案:

答案 0 :(得分:2)

我认为可能会发生这种情况,因为WebUI.doubleClick()定位到元素的中间,因此它开始在()后面的某个地方键入内容。

也许尝试使用x和y值较小的WebUI.clickOffset(enterPhoneNumber,x,y)(例如,从元素的左上角计算为5 px),以便确保单击会落在第一个{{1}附近}位。

另一个选择是使用

(_ _ _

使用

WebUI.click(enterPhoneNumber)
WebUI.sendKeys(enterPhoneNumber, Keys.chord(Keys.HOME))
WebUI.setMaskedText(enterPhoneNumber, '8015558245')

已导入。

答案 1 :(得分:2)

答案是综合的:

首先:我需要将光标设置在左括号右侧的已屏蔽文本的左侧。为了确保这一点,我使用了建议的clickOffset(enterPhoneNumber,40,5)。 [感谢@Matt Mrse的建议!]

使用WebUI.setMaskedText(..)时,这不能解决文本换行问题,但是它可以使下一部分可靠地工作,即:

第二:始终始终正确输入手动输入框中的文本。因此,我没有发送WebUI.setMaskedText(..),而是发送了整个字符串,就好像使用WebUI.sendKeys(..)键入了一样。

在五次不同的测试中进行五次测试后,可靠地工作(所有其他先前的尝试在1-2次尝试中均失败)的最终代码是:

    WebUI.clickOffset(enterPhoneNumber, 40, 5)
    WebUI.sendKeys(enterPhoneNumber, '8015558245')
    WebUI.delay(1) //For humans to be able to see that text was entered correctly

就是这样!

希望这对其他人有帮助!

答案 2 :(得分:0)

我认为您需要仔细检查一些内容:  -键入电话号码时是否会自动添加()?  -setMaskText()用于将文本输入为“ **************”

我不确定我是否清楚地了解此案。通常,我通过使用sendKeys关键字来处理这种情况,该关键字将演示打字操作,以便可以正确添加电话格式。