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

时间:2013-01-01 09:15:16

标签: c# silverlight ranorex

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

4 个答案:

答案 0 :(得分:2)

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

示例:

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

关于, Avinash Nigam

答案 1 :(得分:1)

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

答案 2 :(得分:1)

如果按钮不在您无法滚动的区域内,您可以使用

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

这样就强制观看按钮。

答案 3 :(得分:1)

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

如果您更改了元素Id-s,即使页面被导航离开并移回(例如我们在SAP相关组件中存在此问题),您可能需要使用正则表达式创建更强大的xPath路径变量。 / p>

尝试找到不会改变的路径的对象和部分(例如," 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

我知道身份证中不会改变的部分是:

: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']")是明智之举。