Selenium 看不到 AngularJS 页面元素

标签 selenium angularjs angularjs-directive

我在编写 Selenium 测试来检查我的应用程序时遇到问题。我想测试的是,当用户输入正确的登录名/密码时,会显示正确的页面并且用户已登录。

主要问题是我的登录表单是作为 AngularJS 指令生成的(我有两个不同的登录页面,并且该指令在两个地方都重复使用),而 Selenium 似乎无法看到该指令生成的标记中的元素。 最重要的是,在我用指令生成的标记替换常规标记之前,测试就已经在该页面上通过了。

所以看起来 Selenium 无法看到由指令生成的 html 元素。

有什么建议可以让我克服这个问题吗?当然,除了恢复此更改引入指令:)

最佳答案

好吧,看起来是我误用了 Geb 和 Selenium。我没有指定默认驱动程序,Geb 选择了一个不支持 AngularJS 的驱动程序。在我手动将驱动程序更改为 Chrome 后,一切开始工作。

关于Selenium 看不到 AngularJS 页面元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16287935/

相关文章:

javascript - 隔离范围指令导致 karma 错误

javascript - $templateCache 在指令中未定义,尽管我在 $http 调用中设置了 `{cache: $templateCache}`

java - 尝试在 Jenkins 上运行 Selenium 时出现 NoSuchSession 异常

selenium - 在多显示器显示环境中,如何告诉 Selenium 在哪个显示器中打开新窗口?

Macbook m1 上的 Selenium

javascript - Angular UI Bootstrap TypeAhead - 如何强制用户选择

javascript - 嵌入 : Element & Scope

angularjs - ng-repeat、指令和点击。它们如何结合?

javascript - ui-sref 更改时 href 不会刷新

python - 抓取 protected 电子邮件