【发布时间】:2019-09-19 03:54:27
【问题描述】:
这是一个我以前从未见过的非常奇怪的东西,而且很难用谷歌搜索。
我们有一个单页应用程序,它具有内部选项卡(不是 Chrome 选项卡,应用程序中的纯 html 模拟选项卡)。我们有端到端的 Selenium C# 测试,这些测试在使用单个选项卡时运行良好。我们创建了一些在打开两个 html 选项卡的情况下运行的测试,但它们失败了。他们失败了,因为其中带有“打开”按钮的模态被复制了,当测试单击它时,它单击了原始而不是复制并引发了错误。模式及其组件应该只有一个实例,事实上,当您以普通用户身份运行它时,这正是发生的情况。以下是场景:
- 在本地运行,作为正常的浏览器会话,打开两个应用程序选项卡,打开模式对话框,DOM 中的一个“打开”按钮实例。
- 在本地运行,调试运行 Selenium C# Visual Studio,两个应用程序选项卡,打开模式对话框,DOM 中相同打开按钮的两个实例,测试失败,因为代码正在寻找“第一个”,错误是“另一个”元素将获得点击”。
这是一个 Angular 4 SPA 项目 - 以前从未见过这样的事情。根据浏览器模式,DOM 中的元素会被复制。有没有其他人看过这个?
不确定这是否是我们的应用程序的问题 - 在这种情况下,为什么当我们以普通用户身份运行时它不这样做?或者,如果我们从测试套件启动 Chrome 的方式存在问题 - 我们在新建 ChromeDriver 实例时没有指定任何 Chrome 选项。
【问题讨论】:
-
用相关的 HTML 和代码试验更新问题
-
有可能使用适当的选择器来解决。请分享html。
标签: c# selenium google-chrome selenium-webdriver