运行Selenium浏览器测试时,DOM中的元素重复

问题描述 投票:0回答:1

这是一个非常奇怪的,我以前从未见过,谷歌很难。

我们有一个单页应用,它有内部标签(不是Chrome标签,应用中的纯HTML模拟标签)。我们有端到端的Selenium C#测试,在使用单个选项卡时运行正常。我们创建了一些测试,它打开了两个html选项卡,但是它们都失败了。它们失败了,因为其中有一个带有“打开”按钮的模式被复制,当测试单击它时,它点击了原始而不是重复并抛出了错误。应该只有一个模态及其组件的实例,实际上当你以普通用户的身份运行它时,究竟会发生什么。这是场景:

  1. 在本地运行,正常浏览器会话,打开两个应用程序选项卡,打开模式对话框,DOM中的一个Open按钮实例。
  2. 在本地运行,调试运行Selenium C#Visual Studio,两个应用程序选项卡,打开模态对话框,DOM中相同打开按钮的两个实例,测试失败,因为代码正在寻找'第一个'而错误是'另一个元素将获得点击'。

这是一个Angular 4 SPA项目 - 从未见过这样的事情。根据浏览器模式,DOM中的元素是重复的。有没有人见过这个?

不确定这是否是我们的应用程序的问题 - 这种情况为什么我们作为普通用户运行时不这样做?或者,如果我们从测试套件中启动Chrome的方式存在问题 - 我们在新推出ChromeDriver实例时并未指定任何Chrome选项。

c# selenium google-chrome selenium-webdriver
1个回答
0
投票

'另一个元素将获得点击'并不意味着指定的选择器有另一个元素。它通常意味着它上面有另一个元素(隐藏它)。我建议你在点击之前和之后创建截图,并手动检查元素是否确实在那一刻可见。同时检查您选择的元素是不是偶然的0,0大小,当用户点击时,点击是由孩子或类似的东西收到的

© www.soinside.com 2019 - 2024. All rights reserved.