From 3e5a3ce0274cc459aed814bb7b03f92330e41827 Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Wed, 25 Mar 2015 13:48:08 +0100 Subject: Maybe this helps TB56? Change-Id: I209fcc9277d8efe27608b7e858f16fa31a6973b2 --- .../accessibility/AccessibleRelationSet.java | 23 ++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/sw/qa/complex/accessibility/AccessibleRelationSet.java b/sw/qa/complex/accessibility/AccessibleRelationSet.java index f8323fce450c..562bcfe98d7e 100644 --- a/sw/qa/complex/accessibility/AccessibleRelationSet.java +++ b/sw/qa/complex/accessibility/AccessibleRelationSet.java @@ -169,10 +169,25 @@ public class AccessibleRelationSet { XModel aModel = UnoRuntime.queryInterface(XModel.class, xTextDoc); - XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel); - XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow); - - XAccessibleContext ctx = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.DOCUMENT_TEXT); + XAccessibleContext ctx; + for (int i = 0;; ++i) { + XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel); + XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow); + ctx = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.DOCUMENT_TEXT); + if (ctx != null) { + break; + } + if (i == 20) { // give up after 10 sec + throw new RuntimeException( + "Couldn't get AccessibleRole.DOCUMENT_TEXT object"); + } + System.out.println("No DOCUMENT_TEXT found yet, retrying"); + try { + Thread.sleep(500); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + } para1 = ctx.getAccessibleChild(0); para2 = ctx.getAccessibleChild(1); -- cgit v1.2.3