在常用方法不起作用的情况下,选择DOM元素的其他方法

时间:2017-09-06 15:00:09

标签: javascript dom

如果填充5个术语,我认为DOM元素“很难被选中”:

  1. 它没有任何标识符(ID,类或唯一属性)。

  2. 在网页的每个服务器创建中动态创建Xpath

  3. 它是同一标记的众多元素之一(例如div),其中的数量也是动态的,因此像document.querySelector('div')[322]这样的特定项目引用将主要无效

  4. 由于来自具有ID的父元素的道路非常大(如25-30个元素),因此单独使用HTML会有点令人沮丧。如果ID是动态创建的,也是不可能的。

  5. 其他元素共享元素的textContent(尽管只有当您打开包含它们的手风琴时,它们才会出现在视口中)。

  6. 还剩下什么?

    据我所知,在极少数情况下,唯一的问题就是将这些方面放在一起:

    • 的textContent。
    • 视口中的可用性(对于首屏时具有唯一内容的元素,它会更容易)。

    这也不会总是完美的。

    出于好奇。还有什么可以唯一地识别这些元素?

    编辑:我在网站上问这个,而不是我的 - 我无法编辑他们的服务器端代码。

1 个答案:

答案 0 :(得分:1)

您是否正在为现有网站进行某种浏览器测试自动化? 我发现选择DOM元素的最佳方式是引入一层业务逻辑。

因此,例如,如果我们有一个恰好有ID的手风琴,我可能会开始为手风琴做一个选择器,然后将所有子元素存储到一个数组中。然后我会遍历那个数组并尝试根据某种逻辑找到我正在寻找的元素。

这将是超级低效的,但至少你可以添加评论和合理的功能名称,以便从你如何寻找它中分离出你想要的东西。