Selenium WebDriver单击JQuery移动按钮,但不加载新页面



我正在尝试使用Selenium WebDriver来自动化我的团队正在使用JQuery为我们公司创建的移动web应用程序。由于它使用的是JQueryMobile,所有HTML都是在一个请求中检索到的,单击按钮会在默认页面上显示新页面。

我正在写的测试应该点击一个按钮,打开一个新的请求页面:

DefaultSelenium selenium;
...
selenium.click("css=a[href='#new-request-page']");

驱动程序似乎发现这个按钮很好,因为Selenium没有抛出任何异常。然而,默认页面上永远不会弹出任何页面,因此用户看不到发生了什么。尽管如此,测试似乎一直正常运行,直到后来遇到(无关的)错误。

Selenium真的找到并点击了新的请求按钮吗?如果是,我该怎么做才能让驱动程序加载新的请求页面?如果没有,为什么它不让我知道它找不到新的请求按钮?

我从其他人那里了解到,在开始下一步测试之前,我可能需要告诉测试等待Ajax调用完成,所以这是我的下一个解决方案。然而,我想知道是否还有其他人也有类似的问题。

不幸的是,我无法发布网络应用程序本身的链接,因为它存在于我们的内联网上,需要公司登录才能查看。该测试在Firefox中进行,并使用默认的Selenium web驱动程序。

首先,这似乎是Selenium RC代码,它已被正式弃用。考虑切换到网络驱动程序。

使用网络驱动程序,你可以实现这样的东西:

WebElement jQueryButton = driver.findElement(By.cssSelector("your_css"));

看看它是否返回了什么,你可以试着点击它,但可能不会成功。很可能您需要执行jQuery本机API函数。查看JavascriptExecutor接口。

http://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/JavascriptExecutor.html

最新更新