1

我正在尝试使用 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 驱动程序。

4

1 回答 1

0

首先,这似乎是已正式弃用的 Selenium RC 代码。考虑切换到 webdriver。

使用 webdriver,您可以实现如下内容:

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

看看它是否返回任何东西,您可以尝试单击它,但这可能不会奏效。很可能您需要执行 jQuery 原生 API 函数。查看JavascriptExecutor接口。

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

于 2013-09-04T09:14:08.010 回答