3

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

4

4 回答 4

2

我遇到了同样的问题,但我可以通过在单击之前引入 Validate.Exists(infoObject) 来解决问题。请确保您传递按钮的 infoObject 或 Validate.Exists API 中的任何元素。

例子:

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

关于,Avinash Nigam

于 2013-06-21T17:54:27.210 回答
1

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

于 2013-01-04T13:49:14.257 回答
1

如果按钮不在您无需滚动即可看到的区域内,您可以使用

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

以这种方式,按钮被强制观看。

于 2015-05-11T15:18:33.930 回答
1

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

如果您在页面被导航离开和移回时更改了元素 ID(例如,我们在 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']”)。

于 2015-11-02T08:12:07.053 回答