使用Selenium识别ReactJS网页上的元素是他们更好的方法吗?

时间:2018-05-03 17:14:13

标签: reactjs selenium testing

我试图在使用reactjs构建的网页上使用Selenium编写Web驱动的测试。我能够通过xpath抓取我的元素,但这不是理想的,也是非常有限的。

  1. 如果网站发生任何变化,则xpath将无效。
  2. 所有类名都相同,没有其他属性可以抓取,类名也会改变,因为它们是由react动态构建的。
  3. 没有其他属性可供使用。
  4. 不能使用CSSSelector,因为css名称也是由react构建的。
  5. 当我想要一个特定的元素时,我的主要问题会不断出现,比如我刚刚构建的元素或者如何操作列表中的特定元素。

    对于我尝试编写的每个测试,我一直难以接受同样的问题,没有唯一标识符。我不熟悉reactJs,但这是Selenium的常见问题吗?

1 个答案:

答案 0 :(得分:0)

通常的做法是在HTML元素上使用data-test属性,以辅助基于浏览器的测试;无论是静态的还是由JS框架呈现的;我建议您要求开发人员在整个代码库中包含这些属性,以使您可以轻松地定位要测试的元素,而不必担心类名或id属性的更改。