11package org .labkey .test .components .ui .lineage ;
22
33import org .labkey .test .Locator ;
4+ import org .labkey .test .Locators ;
5+ import org .labkey .test .WebDriverWrapper ;
46import org .labkey .test .components .Component ;
57import org .labkey .test .components .WebDriverComponent ;
68import org .labkey .test .components .react .Tabs ;
@@ -48,6 +50,16 @@ public static LineageGraph showLineageGraph(WebDriver driver)
4850 return lineageGraph ;
4951 }
5052
53+ @ Override
54+ protected void waitForReady ()
55+ {
56+ WebDriverWrapper .waitFor (()->
57+ elementCache ().visGraphContainer .isDisplayed () &&
58+ elementCache ().nodeDetailContainer .isDisplayed () &&
59+ !Locators .loadingSpinner .existsIn (this ),
60+ "lineage graph did not load in time" , 5_000 );
61+ }
62+
5163 public Map <String , String > getCurrentNodeData ()
5264 {
5365 return elementCache ().detailTable ().getTableDataByLabel ();
@@ -178,16 +190,16 @@ final WebElement lineageItem(String name, WebElement tabPanel)
178190 // container for the details of the currently-selected node
179191 final WebElement nodeDetailContainer = Locator .tagWithClass ("div" , "lineage-node-detail-container" )
180192 .findWhenNeeded (this ).withTimeout (4000 );
181- WebElement componentDetailImage = Locator .tagWithClass ("i" , "component-detail--child--img" )
193+ final WebElement componentDetailImage = Locator .tagWithClass ("i" , "component-detail--child--img" )
182194 .child (Locator .tag ("img" )).findWhenNeeded (nodeDetailContainer );
183- WebElement nodeDetailName = Locator .tagWithClass ("h4" , "lineage-name-data" )
195+ final WebElement nodeDetailName = Locator .tagWithClass ("h4" , "lineage-name-data" )
184196 .findWhenNeeded (nodeDetailContainer );
185- WebElement nodeDetailLinksContainer = Locator .tagWithClass ("div" , "lineage-node-detail" )
197+ final WebElement nodeDetailLinksContainer = Locator .tagWithClass ("div" , "lineage-node-detail" )
186198 .findWhenNeeded (nodeDetailContainer );
187- WebElement nodeOverviewLink = Locator .linkWithSpan ("Overview" ).withClass ("lineage-data-link--text" )
199+ final WebElement nodeOverviewLink = Locator .linkWithSpan ("Overview" ).withClass ("lineage-data-link--text" )
188200 .findWhenNeeded (nodeDetailLinksContainer );
189- Locator lineageLinkLoc = Locator .linkWithSpan ("Lineage" ).withClass ("lineage-data-link--text" );
190- WebElement nodeLineageLink = lineageLinkLoc .findWhenNeeded (nodeDetailLinksContainer );
201+ final Locator lineageLinkLoc = Locator .linkWithSpan ("Lineage" ).withClass ("lineage-data-link--text" );
202+ final WebElement nodeLineageLink = lineageLinkLoc .findWhenNeeded (nodeDetailLinksContainer );
191203 Tabs nodeDetailsTabs ()
192204 {
193205 return new Tabs .TabsFinder (getDriver ()).findWhenNeeded (nodeDetailContainer );
@@ -198,9 +210,9 @@ DetailTable detailTable()
198210 return new DetailTable .DetailTableFinder (getDriver ()).waitFor (nodeDetailContainer );
199211 }
200212
201- WebElement nodeDetails = Locator .tagWithClass ("div" , "lineage-node-detail" )
213+ final WebElement nodeDetails = Locator .tagWithClass ("div" , "lineage-node-detail" )
202214 .findWhenNeeded (nodeDetailContainer ).withTimeout (3000 );
203- WebElement nodeDetailsName = Locator .tagWithClass ("div" , "lineage-name-data" )
215+ final WebElement nodeDetailsName = Locator .tagWithClass ("div" , "lineage-name-data" )
204216 .findWhenNeeded (nodeDetails );
205217
206218 NodeDetailGroup summaryList (String nodeLabel )
0 commit comments