在Ranorex中,我找到了如何等待元素的存在,但我找不到如何等待元素可见。
我想做同样的事情,但我想等到元素可见。不幸的是,我只看到Exist
和Not Exist
作为WaitFor
语句的可能值。在我的情况下,测试是不可靠的,因为尽管元素存在,有时会启动点击,但仍然没有显示
你知道怎么做吗?
答案 0 :(得分:2)
您可以在回购路径TabX=np.array([0.0]*len(LongueursFissureGlobale))
TabY=np.array([0.0]*len(CourbeInterpolationGlobale))
中添加此元素并使用[@visible='true']
:
WaitForExists
答案 1 :(得分:1)
您可以使用Visible
属性等待元素:
DateTime start = DateTime.Now;
while (Repository.Element.Visible)
{
Delay.Seconds(1);
if(System.DateTime.Now.Subtract(start).TotalSeconds > MaxWaitTime)
{
Validate.Fail("");
}
}
答案 2 :(得分:0)
对于Web元素,很难知道项目是否存在,是否可见等。
通过将DOM页面的位置和宽度与我的示例中的滑动菜单位置和宽度进行比较,我获得了可靠性,如下所示:
Public Function IsMenuVisible() As Boolean
Dim menuVisible As Boolean
'Get page position and width
Dim pageXPosition As Integer = repo.WebPage.Self.Element.ScreenLocation.X
Dim pageWidth As Integer = repo.WebPage.Self.Element.ScreenRectangle.Width
'Get configuration menu position and width
Dim menuXPosition As Integer = repo.WebPage.Menu.Self.Element.ScreenLocation.X
Dim menuWidth As Integer = repo.WebPage.Menu.Self.Element.ScreenRectangle.Width
'If menu top right location is >= web page size (out of screen)
If menuXPosition + menuWidth > pageXPosition + pageWidth Then
Report.Info(String.Format("Configuration menu is hidden (menuXPositon = {0}, pageXPosition = {1}, pageWidth = {2}, menuWidth = {3}).", menuXPosition, pageXPosition, pageWidth, menuWidth))
menuVisible = False
Else
Report.Info("Configuration menu is currently visible.")
menuVisible = True
End If
Return menuVisible
End Function
在我的示例中,菜单位于页面右侧。请根据您的需要进行修改。
然后,执行简单的用户代码循环多次,等待菜单显示如下:
Public Sub WaitForMenuToAppear()
Dim retries As Integer = WaitForMenuToAppearRetries
While Not IsMenuVisible() AndAlso retries > 0
retries -= 1
Report.Info(String.Format("Waiting for configuration menu to be visible ({0}).", retries))
Delay.Duration(1000)
End While
If Not IsMenuVisible() Then
Throw New RanorexException(String.Format("Menu did not appear within '{0}' seconds.", WaitForMenuToAppearRetries))
Else
Report.Info("Menu is visible.")
End If
End Sub
我必须这样做,因为滑动总是可见的。使用Ranorex Spy的高亮功能,红色矩形被绘制在网页的查看区域之外。
我留给你完成这个例子。
希望这会有所帮助......