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

Jes*_*ell 5 testing selenium reactjs

我正在尝试在使用reactjs构建的网页上使用Selenium编写Web驱动的测试。我可以通过xpath来抓取元素,但这不是理想的,而且非常有限。

  1. 如果网站发生任何更改,则xpath将不起作用。
  2. 所有的类名都是相同的,没有其他可获取的属性,并且这些类名也会更改,因为它们是由react动态构建的。
  3. 没有其他要使用的属性。
  4. 不能使用CSSSelector,因为CSS名称也是由react构建的。

当我想要一个特定的元素(例如我刚刚构建的元素或如何操作列表中的特定元素)时,我的主要问题不断出现。

对于我尝试编写的每个测试,我总是感到困惑,没有唯一的标识符。我不熟悉reactJs,但这是Selenium的常见问题吗?

小智 3

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