无法引用在 Selenium 中的 Ajax 调用后填充的基础设施超 Web 网格控件



我们在从Ajax调用填充的ultra web grid控件中输入值,但是当Ajax调用完成时,我们找不到错误元素。

完整顺序如下:

页面上的元素:保存和取消图标,文本框,下拉列表,项目选择器,弹出窗口,文本区域,空白Infragistics超网网格。首次加载页面时,除超网网格外,所有控件都将初始化。现在,用户单击项目选择器并从弹出窗口中选择一个项目。此操作通过 Ajax 调用初始化页面上的项目详细信息及其数量的超级 web 网格。

现在我们无法引用页面上的超网网格。请注意,我们可以引用所有其他控件。

命令序列:

  • clickAndWait | id=lnkNew
  • 单击 | id=C1_stdItemNumber_btnAuto
  • Click |//table[@id='C1xstdItemNumberxgrd_main']//
  • tbody/tr//td/nobr[contains(text(),'textItem')]
  • clickAndWait |//button[@type='button']
  • waitForVisible| id=C1xgridActivity_main
  • fireEvent | id=C1xgridActivity_main | focus
  • fireEvent | css=#C1xgridActivity_rc_0_2> nobr | focus "This is failing"
  • clickAt | css=#C1xgridActivity_rc_0_2> nobr "This is failing"
  • doubleClickAt| id=C1xgridActivity_rc_0_8 "This is failing"
  • type | id=C1xgridActivity_tb | 1 "This is failing"

我解决了这个问题。

问题是当你加载一个页面时,在DOM中所有的CSS对象都被初始化,但后来当Ajax调用被处理

和完成时,CSS对象不能在同一页面中重新初始化,只有Ajax调用处理的对象被初始化/填充。

您可以使用 XPATH 解决此问题。在 Ajax 调用完成后,您可以引用页面上的所有元素。在这种情况下,将传递 WaitForElement 命令,但稍后当您尝试访问元素的值时,这将失败,当您使用 CSS 引用元素时。

如果使用 jQuery 库,您可以使用以下命令等待 AJAX 调用完成waitForCondition

 waitForCondition | selenium.browserbot.getCurrentWindow().jQuery.active == 0; | 20000

相关内容

  • 没有找到相关文章

最新更新