繁体   English   中英

Selenium Webdriver在执行测试脚本期间非常不一致

[英]Selenium Webdriver is very inconsistent during Execution of test scripts

我们有一个使用Selenium Webdriver开发的关键字驱动框架。 在运行脚本时,一些测试用例在第一次运行中会超时。 当我第二次运行时,相同的测试用例上次通过失败,但是这次其他一些测试用例失败了。

有人可以建议在框架/配置部分是否需要做任何事情。

我正在Windows 7上使用IE9,Java 6,Selenium 2.40,以及来自Selenium官方网站的IE驱动程序。

由于各种原因,您的测试可能很脆弱。

1.同步 -请勿使用Thread.sleep 您应该在测试中考虑等待机制。 WebDriver中有两种类型的等待。 隐式等待和显式等待。

一种。 隐式等待-例如下面的WebDriver在抛出NoSuchElementFoundException之前将内部最多轮询30秒

 driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

显式等待 -在这里告诉WebDriver等待特定条件满足。 例如,在下面,我正在等待链接“ Account可供点击。 一旦可用的WebDriver将返回WebElement以便可以单击它。 看看一些已经实现的有用的ExpectedConditions

WebDriverWait wait = new WebDriverWait(driver,30/*Timeout in seconds*/);
WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.linkText("Account")));
element.click();

2.数据依赖性 -确保您的测试彼此独立,并且不共享数据。 如果测试共享数据,可能会导致冲突

3.在Xpaths上使用CSS- 在这里找到我的答案

4.抽象层 -确保已从页面逻辑中抽象出测试逻辑。 使用PageObjects和PageFactory技术来更好地维护套件

最后,请阅读Simon Stewarts的博客, 网址为“自动Web测试:陷阱”,以获取详细信息。

我建议确保您使用的关键字不是动态生成的。

我曾经在一个站点上工作过,所有ID都看起来像这样:“ ext-gen123”,然后在下一次运行时,相同的元素将具有ID:“ ext-gen124”,但是在那之后运行ID回到'ext-gen123'...

在这种情况下,您必须使用其他标识符来定位元素-可能是CssClass或XPath。

Sainath,

有效运行TestCases的秘诀在于您编写TestCases的方式。.使用Fluent wait ,在元素可见和启用之前等待 ,在Testcase中使用html ID使TC高效。 IE和Selenium并不是一直都很好。.我的意思是,IE和Selenium有很多问题。

实现效率的唯一途径是正确处理异常和使用Wait语句

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM