我在弹出窗口中有一个字段,用于输入带掩码文本的电话号码:“(_ _ _)_ _ _ _-_ _ _ _ _”。
(屏蔽的文本表示我们正在使用jquery自动格式化输入的文本。您可以了解更多here。)上面的下划线只是代表电话号码的空格。 :)
输入时,代码会随机包装文本。我试过使用字符串作为'8015558245',并屏蔽为'(801)555-8245',两者都随机包装结果:
在许多互联网搜索中,我发现的唯一建议是先双击该元素,这不会影响结果。每次我以隐身模式运行测试时。有时它会起作用,其余时间都会失败。
这是我的代码:
TestObject enterPhoneNumber = findTestObject('path/PhoneNumberObject')
WebUI.doubleClick(enterPhoneNumber)
WebUI.setMaskedText(enterPhoneNumber, '8015558245')
我正在使用Katalon v5.9.1,但在较早的版本上也无法使用。
Chrome是浏览器。
答案 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关键字来处理这种情况,该关键字将演示打字操作,以便可以正确添加电话格式。