使用selenium和ngWebDriver访问动态ng-repeat

时间:2018-03-26 20:34:35

标签: javascript java angularjs selenium-webdriver

我正在自动化网络界面。一些框架基于Angular JS。 我试图在动态列中访问ng-repeat。

以下是我的DOM片段:

 <div class="containCol__col column-animation col0" ng-repeat="column 
 in sbCtrl.SlideboardStore.columns track by` 
 sbCtrl.getUniqueColumnId(column)" column-id="emptydata" ng-class=" 
 {'enabled': column.showNewCardInput, 'containCol__col__collapsed': 
 column.isCollapsed}" style="opacity: 1;">

所以在这里你可以看到ng-repeat是动态的,取决于列ID:

ng-repeat="column in sbCtrl.SlideboardStore.columns track 
bysbCtrl.getUniqueColumnId(column)

以下是我在Selenium尝试做的事情:

WebDriverFactory.getDriver().findElement(ByAngular.withRootSelector("#application-container").exactRepeater());

现在我的问题是如何找到转发器的选择器,因为它是动态的,我想先选择列,但因为它不是一个我不知道的框架。处理这件事。

先谢谢

1 个答案:

答案 0 :(得分:2)

大家好我刚刚找到答案,我已经从选择器中移除了动态部分,并通过Xpath选择了列,它就像魅力一样。

WebElement repeater = WebDriverFactory.getDriver().findElement(ByAngular.withRootSelector("#application-container").exactRepeater("column in sbCtrl.SlideboardStore.columns"));