2016-03-19 109 views
0

我试图用硒实现一个测试套件。陈旧的元素参考Selenium Web驱动程序

写入自动脚本时,驱动程序可以使用xpath输入数据。在结果中,我可以看到输入到文本框中的值,但保存页面时会抛出数据未输入到列中的错误(Stale元素异常)。

为了解决这个问题,我试着移动焦点并返回到列并重新输入数据。尽管如此,我仍然遇到同样的错误。

错误消息:

元素在缓存中没有发现 - 也许是页面已经改变,因为它 被查找有关该错误的文档,请访问: http://seleniumhq.org/exceptions/stale_element_reference.html构建 信息:版本:“2.47 .1',修订:'411b314',时间:'2015-07-30 03:03:16'系统信息:主机:'HQ04HQQTP006',ip:'10 .10.220.164', os.name:'Windows 7 ',os.arch:'x86',os.version:'6.1',java.version: '1.8.0_66'驱动程序信息:driver.version:unknown命令持续时间或 超时时间:8.17秒对于doc请访问: http://seleniumhq.org/exceptions/stale_element_reference.html Build info:version:'2.47.1',revision:'unknown',time:'2015-07-30 11:02:44'系统信息:host:'HQ -GRID-001',ip:'10.10.1.206', os.name:'Windows 7',os.arch:'amd64',os.version:'6.1', java.version:'1.8.0_65'驱动程序信息: org.openqa.selenium.remote.RemoteWebDriver能力 [{applicationCacheEnabled = TRUE,旋转=假,handlesAlerts = TRUE, databaseEnabled = TRUE,版本= 40.0.3,平台= WINDOWS, nativeEvents =假,acceptSslCerts = true, webdriver.remote.sessionid = b95bec47-70a6-4c88-bbc0-e38c9d56aff0, webStorageEnabled = true,locationContextEnabled = true, browserName =火狐,takesScreenshot = TRUE,javascriptEnabled = TRUE, cssSelectorsEnabled =真}]会话ID: b95bec47-70a6-4c88-bbc0-e38c9d56aff0

请让我知道如果我没有在这个问题明确,我会试着更多地解释它。

enter image description here

+1

你可以添加你的代码示例吗? –

回答

2

我有两个小技巧让你试一下:

  1. 后做的SendKeys相同的元素做sendKeys(Keys.TAB)或点击一些其他的文本框中。这里要做的一点是可能会有一些字段在您将某些内容输入到其他字段后更新数据。示例:实际列。

  2. 现在,在完成此操作并且您看到正确输入的数据后,如果最初禁用了该功能,则需要给保存按钮留出一些时间。在这种情况下,使用方法: WebDriverWait wait = new WebDriverWait(driver, 10);

    WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.YOUR LOCATOR));

这里我建议你提到的定位,而不是先前确定的元素,因为刷新等可能破坏先前确定的元素。

相关问题