首页 > 解决方案 > 如何检查剑道多选?

问题描述

我正在为具有剑道多选下拉清单的页面开发自动化。

通常我依靠 Chrome 检查器开发工具来确定我正在访问的元素的 Xpath。

但是,当我尝试检查 Kendo 多选时,我遇到了 catch-22(或者更准确地说,是不确定性原则)。我遵循的程序是...

  1. 前提条件:1a) 浏览器打开到包含 Kendo 多选的页面 1b) Chrome 检查器处于活动状态

  2. 单击 Kendo Multiselect 的搜索栏。这会导致可能的多选项目(每个项目都有自己的复选框)的下拉式列表的扩展。它是一种嵌入下拉列表中的混合复选框列表。对最终用户来说非常方便。

  3. 现在列表已展开,我想探索,比如说,列表的第三个元素处或周围的 DOM。我的最终目标是确定多选列表的第三个元素的 Xpath。没问题...我已经扩展了列表,我需要做的就是单击 Chrome 检查器窗口中的元素选择器图标,然后指向浏览器窗口中的第三个元素。

但没那么快......

  1. 这就是问题所在...一旦我单击 Chrome 检查器窗口中的元素选择器图标,多选列表就会折叠(!),当然,随之而来的是 DOM 和我希望检查的元素由于多选列表的更新状态,它甚至不在 DOM 中。

4a。作为一种潜在的解决方法,我尝试了等效于单击 Chrome 检查器的元素选择器图标 (Ctrl-Shift-C) 的热键。这只是部分起作用:虽然多选列表没有折叠,但我无法确定结果匹配DOM 中的位置 - 因为只要我向上/向下滚动或执行任何其他鼠标或键盘活动, dang 多选列表崩溃。

怎么回事?

我想我正在寻找某种方法来将 Chrome 检查器窗口中的鼠标点击与被检查者窗口隔离开来。我过去没有遇到过这个要求,所以我不知道如何进行。

我找到了一些对远程检查的参考,我想知道这是否是我的解决方案。但我完全不清楚它是否能解决我的问题。我没有把那只兔子追到一个可能永无止境的兔子洞里,而是选择在这里发布这个问题,希望能收到一些与我的难题相关的明智建议。

标签: google-chromekendo-uiweb-inspector

解决方案


右键单击该项目并选择“检查”可能会更幸运。虽然多选可能会崩溃,但您仍然应该能够捕获 DOM 中的元素。(我假设 Kendo 用于 jQuery?)

如果您的页面上只有一个 MultiSelect,这将为您提供:

$(".k-animation-container .k-list-container.k-popup li:nth-child(3)");

如果您可以编辑代码,暂时将autoClose设置为 false 可能会对您有所帮助。您还可以绑定到Kendo 公开的各种事件,并在其中放置一些调试代码。

最后一个技巧是在 DOM 检查器中捕获一个节点,在这种情况下 div.k-animation-container 应该是 body 的直接子节点,然后右键单击 > 中断 > 属性修改。这可能会过于频繁地暂停您的代码,但它是一个很好的工具,可以随身携带,以备不时之需。


推荐阅读