gpt4 book ai didi

java - 如何从 Selenium 和 JUnit 检索 li 中 AngularJS 生成的内容?

转载 作者:行者123 更新时间:2023-12-01 11:34:05 25 4
gpt4 key购买 nike

我正在用 Play 编写集成测试!框架、JUnit 和 Selenium。我的客户端网络有 AngularJS 来填充页面内容。我想测试内容,但我不知道如何做。这是我的示例代码:

HTML View :

...
<ul name="quequeEntityList">
<li class="list-group-item" ng-click="turnClick($index)" ng-repeat="turn in turns"> {{turn.value}}</li>
</ul>
...

JUnit 与 Selenium 测试:

@Test
public void loginToControlPanelTest()
{
running(testServer(9000, fakeApplication()),
HTMLUNIT,
new Callback<TestBrowser>()
{
public void invoke(TestBrowser browser)
{
browser.goTo("http://localhost:9000/panel");
browser.await();
System.out.println(browser.find("ul[name='queueEntityList'] > li"));
}
});
}

通过这个简单的测试,我可以获得 ul,但我想浏览 lis 并查看生成的内容,我该怎么做?

最佳答案

默认情况下,Selenium 无需等待即可执行操作,并尝试在上一个操作之后立即执行。因此,在您的示例中, find() 在页面加载后立即执行。然而,当使用 Angular 或任何其他异步(如 AJAX 调用)时,页面加载的那一刻并没有满足它完全渲染的要求,并且所有 ajax 请求都已完成。

因此,您必须使用 wait 并为 Selenium 提供一些它应该等待的条件,直到它继续执行测试。在这种情况下,它可能是即。当

  • 元素的数量大于 1 时,您的行为基本上就像是某个 Ajax 请求,需要一段时间才能加载。

    另请参阅:

  • 关于java - 如何从 Selenium 和 JUnit 检索 li 中 AngularJS 生成的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30175932/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com