2013-12-16 23 views
1

我使用硒的webdriver做Web应用的自动化硒网络驱动程序足下。(我使用eclipse) 在我的测试,我写的代码登录由证书的页面,然后单击部分链接并转到特定页面。现在,在该页面上,我正在通过下拉菜单填充字段,并且它不工作。要执行的

所以我的问题是如果我改变我的代码工作与下拉,然后再次测试我需要运行测试用例从starting.Means再次它将登录页面将加载并通过各种链接,然后达到到那个页面。 因此,不能像我们在selenium IDE中那样直接执行那些步骤?

一次又一次从开始真的拧我的时间执行...?

有什么方法/快捷方式?请建议我。

感谢

+0

我没有在我的eclipse中安装任何硒服务器 – samash

+0

使用Eclipse我不认为你有任何选择。它将始终从步骤1运行。 –

+0

如果没有选择,那么真的很难做到与webdriver自动化。我不能相信它... – samash

回答

0

硒IDE在浏览器,这是再正常不过你可以在运行任何一步。但是,如果您的cookies已过期,则必须重新进行测试。这不是Selenium问题,它是网站的工作方式。 在您的测试中,如果您的案例涉及到athent进程,您必须始终从头开始,除非您设法对您的cookie进行良好控制。

您可以随时做出快速HTTP调用到要与HTTPClient例如连接到网站,只是为了让饼干回来,然后在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(你可能已经猜到了;-)),但你可以只要你喜欢就适应它。我们从中构建了一堆工具来快速迭代开发我们的测试。我们发现这是一个伟大的救世主。

0

在你所描述的情况,测试将始终返回步骤1,因此,你需要从一开始就执行你的自动化套件。

提示对于未来,你的测试用例分离,以较短的(亚历山大的建议),因此如果您需要,可以方便的使用只需要与您相关的目前正在使用的模块的情况下。

0

没有什么不同的答案..从第一步开始......
而且我的建议是,在eclipse中使用一个断点,在这个断点处你会猜测失败...并在调试模式下运行eclipse程序vth连续按F6键。
的excecution增长速度放缓,显示将是一步一步的模式,美国可以很容易地跟踪在此我们的代码是打破确切位置...