Ranorex测试自动化问题:无法可靠地点击silverlight web应用程序上的按钮

本文关键字:web silverlight 应用 应用程序 按钮 程序上 问题 自动化 测试 Ranorex | 更新日期: 2023-09-27 17:50:22

我们已经为Silverlight web应用程序使用Ranorex automation framework自动化了一些测试用例。这些测试用例包括点击按钮以调用屏幕上的某些消息。为了抓取屏幕上的按钮,我们首先创建一个Ranorex按钮对象,然后使用Ranorexpath将其指向适当的元素。然后,我们使用RanorexButton.Click()事件来单击按钮。然而,这个事件是不可靠的。它有时工作,在其他时候,按钮不点击。当按钮没有被点击时,我们必须从头再一次运行测试用例。我们做错了什么?如果这是ranorex的已知问题,请建议解决方法。

Ranorex测试自动化问题:无法可靠地点击silverlight web应用程序上的按钮

我面临着同样的问题,但我能够通过在单击之前引入Validate.Exists(infoObject)来解决这个问题。请确保您传递了按钮的infooobject或Validate中的任何元素。存在API。

的例子:

Validate.Exists(repo.MyApp.LoginBtnInfo);
var button = repo.MyApp.LoginBtn;
button.Click();

与问候,Avinash尼噶的

我还没有听说Ranorex有这样的问题,也许这只是一个时间问题。您可以在点击之前添加一个Validate.Exists(yourButton),这可以确保点击是在按钮成功加载之后执行的。如果它是一个WebElement,你也可以使用PerformClick()方法而不是普通的Click()方法。还有不同的方法可以确保按钮位于可见区域并具有焦点,如EnsureVisible()Focus()方法。您可以在Ranorex的在线API中找到所用适配器的可用方法。

如果按钮不在不滚动的情况下可以看到的区域内,可以使用

var button = repo.Buttons.button1;
button.EnsureVisible();
button.Click();

这可能是xpath和元素Id-s的问题。

如果要更改元素Id-s,即使在页面被移开或移回时(例如我们在SAP相关组件中遇到这个问题),您可能需要使用正则表达式创建一个更健壮的xPath路径变量。

尝试找到路径中不会改变的对象和部分(例如:"iFrame id="MainContent"或"btn id="ID_XXXX_Search_Button") -当然,如果问题在此范围内,这只会有所帮助。

Ranorex正则表达式信息可以在这里找到:http://www.ranorex.com/support/user-guide-20/ranorexpath.html#c3294

我正在谈论的一个简单的例子:

假设我们有一个输入字段,它的名称中有一个不断变化的ID:

US_EL.ID_F2B49DB60EE1B68131BD662A21B3432B:V_MAIN._046A-r

我知道Id中不变的部分是:

:V_MAIN._046A-r

我可以为这个创建一个路径,通过元素id的结尾搜索元素,不改变使用正则表达式:

/dom[@domain='test.example.com']//iframe[#'identifier']//iframe[#'identifier2']//input[@id**~'^**:V_MAIN._046A-r']

粗体部分将指定搜索Id以":V_MAIN._046A-r"结尾的输入元素。

这可能引起的一个问题是,如果您的元素使用部分相同的名称,您可能会为相同的路径返回多个元素。所以在路径上添加一些特定的点是明智的。"iframe[#'identifier2']")