gpt4 book ai didi

javascript - 编码的 UI 播放 - 在特定文本框中输入文本时抛出错误(使用 JavaScript 过滤击键)

转载 作者:行者123 更新时间:2023-11-29 18:18:55 24 4
gpt4 key购买 nike

我刚开始编写一些编码的 ui 测试,当我尝试在文本框中输入一个值时遇到了问题,该文本框通过 javaScript 函数仅限于数字(十进制)值。我已将脚本确定为“罪魁祸首”,因为测试在禁用时成功运行。

我在测试中输入的值根据函数的约束是合法的,所以我不明白为什么当测试运行器输入它时会抛出异常。谁能提供任何见解? javascript 函数似乎可以满足我们的目的,因此为了使自动化测试正常工作而不得不删除它似乎很不幸。

这里有更多的细节:

我的测试相当简单。我正在查找 2 个文本框控件并验证当第一个值缺失时是否出现正确的验证消息。设置 OrderIdTextBox.Text 有效,但设置 AmountTextBox.Text 抛出异常(启用下面的 js 功能时):

[TestMethod]
public void Should_show_validation_error_if_orderId_is_missing()
{
_page.OrderIdTextBox.Text = "";
if (_page.AmountTextBox.Exists)
{
_page.AmountTextBox.Text = "10.00";
}
Mouse.Click(SubmitButton);
Assert.AreEqual(true, _page.OrderIdValidationSpan.Exists);
}

这是页面上的 javascript,它过滤掉 Not Acceptable 击键:

$(document).on('keydown', ".number", function (event) {
// Allow: backspace, delete, tab, escape, enter, and decimal
if (event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 || event.keyCode == 13 || event.keyCode == 110 || event.keyCode == 190 ||
// Allow: Ctrl+A
(event.keyCode == 65 && event.ctrlKey === true) ||
// Allow: home, end, left, right
(event.keyCode >= 35 && event.keyCode <= 39)) {
// let it happen, don't do anything
return;
}
else {
// Ensure that it is a number and stop the keypress
if (event.shiftKey || (event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105)) {
event.preventDefault();
}
}
});

这里是当我的测试试图在播放期间设置 AmountTextBox 值时抛出的异常。

    Test method  (namespace snipped).Should_show_validation_error_if_orderId_is_missing threw exception: 
Microsoft.VisualStudio.TestTools.UITest.Extension.PlaybackFailureException: Cannot perform 'SetProperty of Text with value "10.00"' on the control. Additional Details:
TechnologyName: 'Web'
ControlType: 'Edit'
Id: 'Amount'
Name: 'Amount'

TagName: 'INPUT'
---> System.Runtime.InteropServices.COMException: Exception from HRESULT: 0xF004F006

最佳答案

尝试

Playback.PlaybackSettings.SendKeysAsScanCode = true;

This similar question ( https://stackoverflow.com/questions/16239673/exception-from-hresult-0xf004f006 ) 导致了一个 go4answers 主题,它暗示了上述内容。

“播放默认情况下将 key 作为 Unicode 发送到任何应用程序。可能需要将 key 作为扫描码发送到某些应用程序。我们可以通过重载 Keyboard.Sendkeys 函数来实现。”

来自 http://blogs.msdn.com/b/vstsqualitytools/archive/2010/04/13/uitest-framework-in-visual-studio-2010-part-2.aspx

关于javascript - 编码的 UI 播放 - 在特定文本框中输入文本时抛出错误(使用 JavaScript 过滤击键),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20669099/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com