java – Selenium测试在单独运行时传递,在套件中运行时挂起,并在启用日志记录或远程运行时惊人地传入套件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – Selenium测试在单独运行时传递,在套件中运行时挂起,并在启用日志记录或远程运行时惊人地传入套件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1526字,纯文字阅读大概需要3分钟。
内容图文
![java – Selenium测试在单独运行时传递,在套件中运行时挂起,并在启用日志记录或远程运行时惊人地传入套件](/upload/InfoBanner/zyjiaocheng/819/638400247931474e9f691082c7b8dde4.jpg)
不一致是这里的主题.我有一个大的Selenium测试套件,它在Mac上给我提供问题.我的同事使用Windows,他们没有遇到任何问题.基本上当我使用TestNG运行整个套件时,测试的行为与单独运行时的行为不同.单独地,测试完成没有任何问题.当作为整个套件运行时,目前大约有十个测试,要执行的第三个测试总是挂在完全相同的位置.它试图找到一个元素,并且永远不会出现在Selenium API中.不归路点标有下面的XXX.
driver.manage().timeouts().pageLoadTimeout(20000, TimeUnit.MILLISECONDS);
driver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS);
try {
element = driver.findElement(By.xpath(xpathLocator)); // XXX
} catch (NoSuchElementException | org.openqa.selenium.TimeoutException e)
套件不是并行运行的. Chrome,Firefox和Safari也会出现同样的情况,尽管程序挂起时正在寻找的元素确实会在浏览器之间发生变化.我目前正在使用Mac 10.10.6以及最新版本的Selenium,Eclipse和TestNG.在不同的Mac机器上发生相同的行为.无论我是在Eclipse中运行TestNG套件还是从命令行运行TestNG套件,行为也是一样的.通过-log someFile在节点上启用日志记录时,或者当节点在远程计算机上运行时(即不在本地),执行整个套件时没有任何问题.该套件相当大,所以如果有任何其他代码,我可以在这里发布,这将有助于诊断问题,请告诉我.任何指向正确方向的想法都会非常有帮助.
解决方法:
放置超时和等待本质上是主观的,因为页面加载的时间可能不同.您可以做的最好的事情是将它放在while循环中,但是包含一个大的超时来强制代码退出while循环,或者如果找不到该元素则抛出错误,因为它毕竟是一个测试.
int i = 0;
while (!driver.findElement(By.xpath(xpathLocator))
{
//timeout goes here
i++;
if (i == 10) throw new exception
}
这样的事情应该可以解决问题
内容总结
以上是互联网集市为您收集整理的java – Selenium测试在单独运行时传递,在套件中运行时挂起,并在启用日志记录或远程运行时惊人地传入套件全部内容,希望文章能够帮你解决java – Selenium测试在单独运行时传递,在套件中运行时挂起,并在启用日志记录或远程运行时惊人地传入套件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。