我正在使用selenium webdriver来实现Web应用程序的自动化。(我正在使用eclipse) 在我的测试中,我已经编写了通过凭证登录页面的代码,然后单击一些链接并转到特定页面。现在在该页面上我通过下拉填充字段并且所有内容都无法正常工作。
所以我的问题是,如果我改变我的代码使用下拉,然后再次测试我需要从启动运行测试用例。再次尝试它将登录页面将加载并通过各种链接然后到达那个页面。 所以不能像我们在selenium IDE中那样直接执行那些步骤
一次又一次从开始执行真的搞砸了我的时间...... ??
有没有办法/捷径?请建议我。
由于
答案 0 :(得分:1)
Selenium IDE在浏览器中,然后您可以在任何步骤运行。但是如果你的cookie已经过期,你将不得不重新申请。这不是Selenium问题,而是网站的运作方式。 在您的测试中,如果您的案例涉及athent流程,您将始终必须从头开始,除非您设法对您的cookie进行精细控制。
您可以随时使用HTTPClient
对要连接的网站进行快速http调用,只是为了获取cookie,然后在webdriver中使用
driver.manage().addCookie(new Cookie("foo", "bar", "www.domain.com", "/", null));
然后转到您需要的页面。请注意,此解决方案仅解决了Authent问题,并且不控制测试的Web应用程序的 状态 (以前发布的数据等)。
在我们公司,我们广泛使用硒,并且依靠它进行了大量的测试,因此我们知道一些问题并且我们意识到它可能导致的挫败感。
我们使用完全不同的解决方案来提高测试效率。
实际上,我们正在使用基于Groovy Shell
的解决方案,它允许我们在开发测试时来回切换并保持浏览器打开。 Groovy
是一种JVM脚本语言,对Java开发来说非常简单(几乎所有Java代码都是有效的Groovy代码),而且它非常动态。
所以你可以下载groovy,运行groovy shell(groovysh
是命令),然后逐行启动并与浏览器交互xhile你的编写代码保存到缓冲区。完成测试后,导出代码并将其放入Eclipse中。它比从头开始每次重启更快。用硒开始的魔术线是
groovy.grape.Grape.grab(autoDownload: true, group : 'org.seleniumhq.selenium', module : 'selenium-firefox-driver', version : '2.37.1')
import org.openqa.selenium.*
import org.openqa.selenium.firefox.*
driver = new FirefoxDriver()
driver.get("http://my-website.com")
从这一点开始,浏览器窗口始终处于打开状态,您可以在groovy(或java)中进行开发。它就像一个selenium-ide,但是在groovy中,可以集成到你的开发工作流程中(但还有一些工作要做) 此示例适用于Firefox(您可能已经猜到了;-))但您可以根据需要进行调整。我们从中构建了一系列工具来快速迭代地开发我们的测试。我们发现这是一个伟大的救世主。
答案 1 :(得分:0)
在您描述的情况下,测试将始终返回到步骤1,因此,您需要从头开始执行自动化套件。
未来提示,将您的测试用例分离为较短的测试用例(如Alexander建议的那样),因此,如果您需要,您可以轻松使用所需的案例并与您当前正在处理的模块相关。
答案 2 :(得分:0)
没有什么不同的答案......从第一步开始......
而且我的建议是在eclipse中使用断点来猜测失败...并在调试模式下运行eclipse程序vth连续按F6键。
执行将减慢并且显示将是逐步模式,您可以轻松地跟踪您的代码正在破坏的确切位置...