用于md-select的量角器css定位器

时间:2017-11-02 08:13:01

标签: protractor

我是量角器的新手,需要知道如何获取文本,即下面代码块中的Connections。我需要点击这个" Connections"。任何帮助将非常感激。提前致谢

<md-option ng-repeat="worksite in vmSplashController.worksites track by $index" id="option_worksite_TRANSFER" ng-value="worksite" tabindex="0" class="ng-scope" role="option" aria-selected="false" value="[object Object]">
    <div class="md-text ng-binding">
        Connections
    </div>
</md-option>

完整代码

<md-dialog ng-cloak aria-span="" id="splashDialog" class="asui-popup-container splashContainer">
<form name="splash">
    <md-dialog-content class="agentDetails" flex>            
    </md-dialog-content>
    <md-dialog-content class="agentOptions" flex layout="row">
        <md-input-container class="md-input-has-placeholder" id="nav_worksite" ng-if="vmSplashController.worksites.length >= 1" flex="50" layout="column">
            <label class="select-lable">Worksite</label>
            <md-select md-no-ink name="nav_worksite" required ng-model="vmSplashController.worksites.selected" ng-model-options="{trackBy: '$value.locationCode'}" aria-label="Select Worksite" md-container-class="md-select-custom nav-worksite-selectbox" ng-change="vmSplashController.onWorksiteChange(vmSplashController.worksites.selected)">
                <md-option ng-repeat="worksite in vmSplashController.worksites track by $index" id="option_worksite_{{worksite.locationCode}}" ng-value="worksite">
                    {{**Here that Div is being created i.e. Connections along with other two options**}}
                </md-option>
            </md-select>
        </md-input-container>
    </md-dialog-content>
    <md-dialog-actions layout="row">
        <md-button md-no-ink class="md-primary nobg-btn" ng-click="vmSplashController.onConfirm()" ng-disabled="splash.$invalid">
            CONFIRM
        </md-button>
    </md-dialog-actions>
</form>
</md-dialog>

我特意这个

element(by.cssContainingText('.option_worksite_TRANSFER > div.md-text', 'Connections')).click();

但得到以下错误。

Message:


     Failed: No element found using locator: by.cssContainingText(".option_worksite_TRANSFER > div.md-text", "Connections")

3 个答案:

答案 0 :(得分:2)

尝试使用以下代码:

element(by.cssContainingText('[id^="option_worksite"] > div.md-text', 'Connections')).click();

添加等待:

var EC = protractor.ExpectedConditions;
var ele = element(by.cssContainingText('[id^="option_worksite"] > div.md-text', 'Connections'));
browser.wait(EC.visibilityOf(ele), 5000).then(function(){
    ele.click();            
});

答案 1 :(得分:0)

首先 - 我有点困惑。例如,您尝试选择类option_worksite_TRANSFER,但在错误消息中它有一个id。

如果您尝试从下拉列表中选择值,请尝试以下解决方案:

https://stackoverflow.com/a/39047319/6331748

答案 2 :(得分:0)

尝试使用xpath:

element(by.xpath("//div[text()='Connections']")).click();