【问题标题】:Protractor css locator for md-select用于 md-select 的量角器 css 定位器
【发布时间】:2017-11-09 14:26:47
【问题描述】:

我是量角器的新手,需要知道如何获取文本,即以下代码块中的连接。我需要单击此“连接”。任何帮助将非常感激。在此先感谢

<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")

【问题讨论】:

    标签: protractor


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢。是的,你说得对,我都用“。”试过了。和“#”但没有运气。但是根据示例 element.all(by.model('result.status')).get(0).sendKeys('Acce‌​pt');他们正在使用模型,但我有一个 div 元素,在里面我有我想单击的“连接”文本,并且基于 ng-change 它将完成其余的工作。这是我关于stackoverflow的第一个问题,如果出现任何错误,我很抱歉。欣赏是否有人可以使用我的示例并让我知道如何选择连接。谢谢
    【解决方案2】:

    使用 xpath 试试这个:

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

    【讨论】:

    • 不幸的是它不起作用。没有从 md-option 中选择值“Connections”,但它也没有显示任何错误。
    【解决方案3】:

    尝试使用以下代码:

    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) ....选择选择选项 - 工作站点“代码”消息:失败:元素不可见(会话信息:chrome=60.0. 3112.90) (驱动信息: chromedriver=2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f),platform=Windows NT 10.0.10586 x86_64) 'code'
    • 使用预期条件等待元素可见性如下: 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(); })
    • 我试过这个,但没有运气。消息:失败:在 5024 毫秒后等待超时堆栈:TimeoutError:在 5024 毫秒后等待超时 ///// 我什至也尝试增加时间,但它不起作用,无论我放什么时间,它都会增加一些毫秒并给出同样的错误。
    猜你喜欢
    • 2018-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-02
    • 1970-01-01
    • 2015-09-12
    相关资源
    最近更新 更多