【问题标题】:Watin. how to show invinsible class瓦廷。如何显示无敌等级
【发布时间】:2015-06-23 08:21:05
【问题描述】:

HTML 代码:

<div class="col-sm-9">
<input name="NewCardOrAccountNumber" class="form-control ui-autocomplete-input" id="NewCardOrAccountNumber" type="text" value="" autocomplete="off">
<span class="ui-helper-hidden-accessible" role="status" aria-live="polite"></span>
</div>
<div class="unvisible" id="clientInfoNew">

                        <div class="form-group">
                            <label class="col-sm-3 control-label">FIRST NAME</label>
                            <div class="col-sm-9" id="FnameNew"></div>
                        </div>

                        <div class="form-group">
                            <label class="col-sm-3 control-label">LAST NAME</label>
                            <div class="col-sm-9" id="LnameNew"></div>
                        </div>

                        <div class="form-group">
                            <label class="col-sm-3 control-label">BIRTH DATE</label>
                            <div class="col-sm-9" id="BirthDateNew"></div>
                        </div>

沃廷代码:

[TestMethod]
    [TestCategory("Rimi Change card page")]

    public void Rimi_4444_Change_Card_and_Assert()
    {

        //Web Address
        using (IE ie = new IE(this.Rimi))
        {
            //IE ie = new IE(RimiChangeCard);
            ie.BringToFront();
            ie.ShowWindow(WatiN.Core.Native.Windows.NativeMethods.WindowShowStyle.Maximize);
            ie.TextField(Find.ById("NewCardOrAccountNumber")).TypeText("9440385200600000020");

如果我用键盘写卡号,就会出现隐形班级,你可以看到FIRST NAME,LAST NAME等。但是如果我用 watin 执行此操作,它不会出现,并且您只会看到您输入的卡号。它就像隐藏的信息领域。不知道怎么弄才能让我输入卡号的时候看到这个字段。

【问题讨论】:

  • 发布代码你尝试了什么/如何以及你得到了什么。 AFAIK,您不能在 DIV 中插入文本,它必须是您输入卡号的文本字段。如果可能,发布完整的 HTML。
  • 您可以在问题中放置图片链接,版主可以为您插入。

标签: show hidden watin


【解决方案1】:

会有一个 JavaScript 函数,当您在文本字段中手动输入数据时会执行该函数。浏览同一页面上的 JavaScript 函数,这些函数使用 ID NewCardOrAccountNumber 引用该元素。

请参阅this 链接以获取示例应用程序。其中msg_to 是元素,并具有关联的KeyUp 事件。当该文件获得, 值时,会出现一个 div 部分,其中会显示一个“主题”字段。

同样,在执行TypeText后,尝试使用Java脚本执行来触发Java Script事件中提到的相关事件。

编辑:我看到在 bulr 事件触发后执行了 javascript 函数。这意味着文本框字段应该失去焦点。请尝试以下选项。

// 1.  Try focusing out of control.
ie.TextField(Find.ById("NewCardOrAccountNumber")).TypeText("9440385200600000020");
ie.TextField(Find.ById("OldCardOrAccountNumber")).Click();
ie.WaitForComplete();

// 2. Try Using Send Keys method to tab out.
ie.TextField(Find.ById("NewCardOrAccountNumber")).TypeText("9440385200600000020");
System.Windows.Forms.SendKeys.SnedWait("{TAB}"); // Need to add System.Windows.Forms reference to the project.

【讨论】:

    【解决方案2】:

    我把图片放在互联网上,所以点击这个链接Image,你会在第一张图片上看到页面的外观,第二张图片 - 当你输入卡号(从键盘)时会发生什么,第三张 - 会发生什么当从watin输入卡名时(不显示卡的信息)。

    HTML 代码:

    <div class="ibox-content">
            <br>
            <div class="form-horizontal">
                <div class="row">
                    <div class="col-md-5">
    
                        <div class="form-group">
                            <label class="col-sm-3 control-label">NEW CARD</label>
                            <input name="NewCardId" id="NewCardId" type="hidden" value="0" data-val-required="The NewCardId field is required." data-val-number="The field NewCardId must be a number." data-val="true">
                            <div class="col-sm-9"><span class="ui-helper-hidden-accessible" role="status" aria-live="polite"></span><input name="NewCardOrAccountNumber" class="form-control ui-autocomplete-input" id="NewCardOrAccountNumber" type="text" value="" autocomplete="off"></div>
                        </div>
    
                        <div class="unvisible" id="clientInfoNew">
    
                            <div class="form-group">
                                <label class="col-sm-3 control-label">FIRST NAME</label>
    

    我可能会找到你要找的 Sham,但我不知道如何使用它:

    <script type="text/javascript">
    
        $(document).ready(function() {
    
            var NewCardId = "#NewCardId";
            var OldCardId = "#OldCardId";
            var NewCardNumber = "#NewCardOrAccountNumber";
            var OldCardNumber = "#OldCardOrAccountNumber";
    
    
    
            $(NewCardNumber).autocomplete(
            {
                source: function(request, response) {
    
                    $.ajax({
                        url: '/LoyaltyWebApplication/Suggestion/GetCardSuggestions',
                        dataType: "json",
                        data: {
                            str: $(NewCardNumber).val()
                        },
                        success: function(data) {
                            response($.map(data, function(item) {
                                var label = "";
                                if (item.Fname != null) label += item.Fname;
                                if (item.Lname != null) label += " " + item.Lname;
                                if (label.trim() != '') label = " (" + label.trim() + ")";
                                return {
                                    value: item.CardNumber,
                                    label: item.CardNumber + label
                                }
                            }));
                        },
                        error: function(xhr, ajaxOptions, thrownError) {
                            alert(xhr.status);
                            alert(thrownError);
                        }
                    });
                },
                select: function(event, ui) {
                    getCardDetails($(NewCardNumber), $(NewCardId), 'newCardSegments', true);
                    $("#newCardSegments").hide();
                    $("#clientInfoNew").show();
                },
                minLength: 2
            }).blur(function() {
                getCardDetails($(NewCardNumber), $(NewCardId), 'newCardSegments', true);
            });
    
            $(OldCardNumber).autocomplete(
            {
                source: function(request, response) {
                    $.ajax({
                        url: '/LoyaltyWebApplication/Suggestion/GetCardSuggestions',
                        dataType: "json",
                        data: {
                            str: $(OldCardNumber).val()
                        },
                        success: function(data) {
                            response($.map(data, function(item) {
                                var label = "";
                                if (item.Fname != null) label += item.Fname;
                                if (item.Lname != null) label += " " + item.Lname;
                                if (label.trim() != '') label = " (" + label.trim() + ")";
                                return {
                                    value: item.CardNumber,
                                    label: item.CardNumber + label
                                }
                            }));
                        },
                        error: function(xhr, ajaxOptions, thrownError) {
                            alert(xhr.status);
                            alert(thrownError);
                        }
                    });
                },
                select: function(event, ui) {
                    getCardDetails($(OldCardNumber), $(OldCardId), 'oldCardSegments', false);
                    $("#oldCardSegments").hide();
                },
                minLength: 2
            }).blur(function() {
                getCardDetails($(OldCardNumber), $(OldCardId), 'oldCardSegments', false);
            });
    
            function getCardDetails(cardNumHolder, cardIdHolder, segmentTablePlace, isNew) {
                $.getJSON('/LoyaltyWebApplication/LOV/SetId?lovType=ReplacementLOV&lovValue=' + cardNumHolder.val(), null,
                    function(data) {
                        $("#clientInfo" + ((isNew) ? "New" : "Old")).show();
                        if (cardNumHolder.val() == '') {
                            return;
                        }
                        var i;
                        for (i = 0; i < data.otherNames.length; i++) {
                            $("#" + data.otherValues[i] + (isNew ? "New" : "Old")).text(data.otherNames[i]);
                        }
                        cardIdHolder.val(data.Id);
                        $.getJSON('/LoyaltyWebApplication/Replacement/ClientSegmentsList?clientId=' + data.Id + "&no_cache=" + Math.random, function(data) {
                            $("#" + segmentTablePlace).find('tbody').empty();
                            if (data.length > 0) {
                                $.each(data, function(index) {
                                    $("#" + segmentTablePlace).find('tbody').append("<tr><td>" + data[index].SegmentCode + "</td><td>" + data[index].SegmentName + "</td></tr>");
                                });
                                $("#" + segmentTablePlace).show();
                            }
                        });
                    });
            }
    
            $("#resetVal").click(function() {
    
                $("#NewCardOrAccountNumber").attr("value", "");
                $("#NewCardOrAccountNumber").val("");
    
                $("#NewCardId").attr("value", "");
                $("#NewCardId").val("");
    
                $("#clientInfoNew").hide();
    
                $("#OldCardOrAccountNumber").attr("value", "");
                $("#OldCardOrAccountNumber").val("");
    
                $("#OldCardId").attr("value", "");
                $("#OldCardId").val("");
    
                $("#clientInfoOld").hide();
    
                return false;
    
            });
    
        });
    </script>
    

    【讨论】:

    • 发布完整的 HTML。
    • 我也在页面中寻找与NewCardOrAccountNumber 元素相关的java 脚本函数。尝试在 HTML 页面中搜索以找到一个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-03
    • 2012-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多