首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DevExtreme跌落与Watir

DevExtreme跌落与Watir
EN

Stack Overflow用户
提问于 2016-03-30 12:54:33
回答 1查看 1.5K关注 0票数 0

因此,在从DevExpress升级到DevExtreme时,DE似乎已经想方设法阻止了除它们自己的引擎之外的任何自动化引擎。选择框是作为一层自定义DIV标签构建的,中间有一个只读输入标签。如果选中,下拉列表将生成为绑定到页面源的/body/级别的DIV列表结构。当下拉列表关闭时,此列表将卸载。Waitr可以在列表第一次出现在页面上时看到它并与其交互,但是一旦它卸载,我就无法让它再次找到它。我已经尝试过Page引用,原生Watir动态引用,什么都不工作。有趣的是,我没有得到普通的‘不再附加到DOM’错误,只是一个空字符串。来自DevExpress的所有解决方案都已被停用或阻止。

除了公开JS调用之外,有没有人找到一种自动化这些控件的方法?

复选框:

代码语言:javascript
复制
<div class="dx-texteditor dx-dropdowneditor-button-visible dx-widget dx-textbox dx-dropdowneditor-field-clickable dx-dropdowneditor dx-selectbox dx-validator dx-visibility-change-handler" id="Active_Y_or_N" typeof="drpdown" validations="[{&quot;type&quot;:&quot;required&quot;}]" value="1" items="[{&quot;Value&quot;:1.0,&quot;Text&quot;:&quot;Yes&quot;,&quot;DropDownType&quot;:&quot;Active Y or N&quot;},{&quot;Value&quot;:2.0,&quot;Text&quot;:&quot;No&quot;,&quot;DropDownType&quot;:&quot;Active Y or N&quot;}]" originalvalue="1">
    <div onclick="void(0)" class="dx-dropdowneditor-input-wrapper dx-selectbox-container">
        <div class="dx-texteditor-container">
            <input id="Active_Y_or_N_1" aria-expanded="false" role="combobox" tabindex="0" spellcheck="false" readonly="" aria-autocomplete="list" aria-haspopup="true" autocomplete="off" class="dx-texteditor-input" type="text">
            <div class="dx-placeholder dx-state-invisible" data-dx_placeholder="Select..."></div>
            <div class="dx-texteditor-buttons-container">
                <div role="button" onclick="void(0)" class="dx-widget dx-button-normal dx-dropdowneditor-button">
                <div class="dx-dropdowneditor-icon"></div>
            </div>
        </div>
    </div>
</div>

列表:

代码语言:javascript
复制
<div style="width: 212px; height: 61px; z-index: 1001; margin: 0px; left: 0px; top: 0px; transform: translate(264px, 365px); transition: none 0s ease 0s ; visibility: visible; opacity: 1;" class="dx-overlay-content dx-popup-normal dx-popup-draggable dx-resizable">
    <div style="height: 60px;" id="2ceea1a1-35ca-5e1d-72c1-17ca0c70daa9" class="dx-popup-content">
        <div aria-activedescendant="3cc4c726-d65a-4248-b16c-6cd8ed666d08" tabindex="-1" role="listbox" class="dx-scrollable dx-scrollview dx-scrollable-customizable-scrollbars dx-scrollable-vertical dx-scrollable-simulated dx-visibility-change-handler dx-list dx-widget dx-collection" id="2779756d-884a-7d65-dd53-5ab194255698">
            <div class="dx-scrollable-container">
                <div style="transform: translate(0px, 0px);" class="dx-scrollable-content">
                    <div class="dx-scrollview-top-pocket">
                        <div style="display: none;" class="dx-scrollview-pull-down">
                            <div class="dx-scrollview-pull-down-image"></div>
                            <div class="dx-scrollview-pull-down-indicator">
                                <div class="dx-loadindicator dx-widget">
                                    <div class="dx-loadindicator-wrapper">
                                        <div class="dx-loadindicator-content">
                                            <div class="dx-loadindicator-icon">
                                                <div class="dx-loadindicator-segment dx-loadindicator-segment7"></div>
                                                <div class="dx-loadindicator-segment dx-loadindicator-segment6"></div>
                                                <div class="dx-loadindicator-segment dx-loadindicator-segment5"></div>
                                                <div class="dx-loadindicator-segment dx-loadindicator-segment4"></div>
                                                <div class="dx-loadindicator-segment dx-loadindicator-segment3"></div>
                                                <div class="dx-loadindicator-segment dx-loadindicator-segment2"></div>
                                                <div class="dx-loadindicator-segment dx-loadindicator-segment1"></div>
                                                <div class="dx-loadindicator-segment dx-loadindicator-segment0"></div>
                                            </div>
                                        </div>
                                        <div class="dx-loadindicator-content"></div>
                                    </div>
                                </div>
                            </div>
                            <div class="dx-scrollview-pull-down-text">
                                <div style="opacity: 1;">Pull down to refresh...</div>
                                <div style="opacity: 0;">Release to refresh...</div>
                                <div style="opacity: 0;">Refreshing...</div>
                            </div>
                        </div>
                    </div>
                <div onclick="void(0)" class="dx-scrollview-content">
                    <div id="3cc4c726-d65a-4248-b16c-6cd8ed666d08" aria-selected="false" role="option" class="dx-item dx-list-item dx-state-focused">
                        <div class="dx-item-content dx-list-item-content">Yes</div>
                    </div>
                    <div aria-selected="false" role="option" class="dx-item dx-list-item">
                        <div class="dx-item-content dx-list-item-content">No</div>
                    </div>
                </div>
                <div class="dx-scrollview-bottom-pocket">
                    <div style="display: none;" class="dx-scrollview-scrollbottom">
                    <div class="dx-scrollview-scrollbottom-indicator">
                        <div class="dx-loadindicator dx-widget">
                            <div class="dx-loadindicator-wrapper">
                                <div class="dx-loadindicator-content">
                                    <div class="dx-loadindicator-icon">
                                        <div class="dx-loadindicator-segment dx-loadindicator-segment7"></div>
                                        <div class="dx-loadindicator-segment dx-loadindicator-segment6"></div>
                                        <div class="dx-loadindicator-segment dx-loadindicator-segment5"></div>
                                        <div class="dx-loadindicator-segment dx-loadindicator-segment4"></div>
                                        <div class="dx-loadindicator-segment dx-loadindicator-segment3"></div>
                                        <div class="dx-loadindicator-segment dx-loadindicator-segment2"></div>
                                        <div class="dx-loadindicator-segment dx-loadindicator-segment1"></div>
                                        <div class="dx-loadindicator-segment dx-loadindicator-segment0"></div>
                                    </div>
                                </div>
                                <div class="dx-loadindicator-content">
                            </div>
                        </div>
                    </div>
                </div>
                <div class="dx-scrollview-scrollbottom-text">Loading...</div>
            </div>
        </div>
    </div>
    <div style="display: none;" class="dx-scrollable-scrollbar dx-widget dx-scrollbar-vertical dx-scrollbar-hoverable">
        <div style="transform: translate(0px, 0px); height: 58px;" class="dx-scrollable-scroll dx-state-invisible">
            <div class="dx-scrollable-scroll-content"></div>
        </div>
    </div>
</div>
<div class="dx-scrollview-loadpanel dx-overlay dx-widget dx-visibility-change-handler dx-state-invisible dx-loadpanel">
    <div aria-hidden="true" style="width: 222px; height: 90px;" class="dx-overlay-content"></div>
</div>    

代码(至少有一个版本):

代码语言:javascript
复制
self.send("#{field}_element").div(:class => 'dx-dropdowneditor-icon').click
drpdwn = @browser.div(:class => 'dx-scrollview-content')
if drpdwn.text.include? value
  drpdwn.div(:text => value).click
else
   fail "value (#{value}) not found in list (#{self.drop_list_element.text})"
end
EN

回答 1

Stack Overflow用户

发布于 2016-03-31 07:42:31

这是很难回答的,因为我看不到你的代码,我没有例子。所以也许这是个错误的答案。但如果你的声明:

在列表的第二个加载中,Watir可以将其视为存在,但不可见。

是对的。然后,可以使用以下命令强制watir处理不可见的元素:

代码语言:javascript
复制
browser.hidden(id: "your_element").click

请试试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36309504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档