我正在尝试使用 Selenium WebDriver 来自动化我的团队使用 JQuery 为我们公司创建的移动 Web 应用程序。由于它使用的是 JQuery Mobile,所有 HTML 都在一个请求中检索,单击按钮会在默认页面上显示新页面。
我正在编写的测试应该单击一个按钮,该按钮会打开一个新的请求页面:
DefaultSelenium selenium;
...
selenium.click("css=a[href='#new-request-page']");
驱动程序似乎发现这个按钮很好,因为 Selenium 不会抛出任何异常。但是,在默认页面上不会弹出任何页面,因此用户看不到正在发生的事情。尽管如此,测试似乎继续正常运行,直到它遇到后来的(不相关的)错误。
Selenium 是否真的找到并单击了新的请求按钮?如果是这样,我该怎么做才能让驱动程序加载新的请求页面?如果没有,为什么不让我知道它找不到新的请求按钮?
我从其他人那里读到,我可能需要告诉测试在开始测试的下一步之前等待 Ajax 调用完成,所以这是我的下一个解决方案。但是,我想知道是否还有其他人有类似的问题。
不幸的是,我无法发布指向 Web 应用程序本身的链接,因为它存在于我们的 Intranet 上并且需要公司登录才能查看。该测试在 Firefox 中进行,并使用默认的 Selenium Web 驱动程序。