量角器:选择一个元素



我想选择一个按钮,以便我可以单击它,但是我尝试选择它的任何方法都没有奏效。

这些是我尝试过但没有奏效的事情。它们中的大多数都会导致选择器无效的错误。

element(by.css('md-card-actions>button>span')).click();
element(by.css('md-card-actions class="stepper-buttons ng-scope layout-row" layout="row" ng-if="vm.stepperFactory.controls" style="'));
element(by.className('stepper-buttons layout-row')).click();
element.all(by.className('flex')).get(2).click();
element(by.css('md-card-actions>button')).click();
element(by.css('md-card-actions')).click();
element(by.className('stepper-buttons ng-scope layout-row')).click();
element(by.css('md-card-actions class="stepper-buttons ng-scope layout-row" layout="row" ng-if="vm.stepperFactory.controls"')).click();
element(by.css('md-card-actions class="stepper-buttons ng-scope layout-row" layout="row"')).click();
element(by.css('md-card-actions class="stepper-buttons ng-scope layout-row"')).click(); 

这是包含"继续人口统计"按钮的应用程序代码,我想选择该按钮:

<md-card-actions class="stepper-buttons layout-row" layout="row" ng-if="vm.stepperFactory.controls">
<!-- BACK Button -->
<!---->
<!-- Spacer -->
<span flex="" class="flex"></span>
<!-- NEXT Button -->
<button class="md-raised md-button md-ink-ripple md-accent" type="button" ng-transclude="" ng-class="{ 'md-primary' : !vm.stepperFactory.lastStep, 'md-accent' : vm.stepperFactory.lastStep }" ng-disabled="!vm.stepperFactory.nextButton.active||!stepperForm.$valid" ng-click="vm.stepperFactory.goNext(stepperForm)"><span>
Continue to Demographics
</span></button>
</md-card-actions>

与您尝试的第一个类似,但可能会有所不同:

element(by.css('.md-card-actions .md-raised.md-button.md-ink-ripple.md-accent span'));

尝试使用以下代码片段

browser.waitForAngularEnabled=false;
element(by.buttonText('Continue to Demographics'));

按钮内有一个跨度。"继续人口统计"文本在此跨度内。 请尝试以下操作:

element(by.xpath('//span[contains(text(), "Continue to Demographics")]'))

更新: 尝试使用期望条件来等待元素可点击

var EC = protractor.ExpectedConditions;
var myButton = element(by.xpath('//span[contains(text(), "Continue to Demographics")]'))
browser.wait(EC.elementToBeClickable(myButton), 10000, "element is not clickable");

如果您会收到超时错误("元素不可单击"),这意味着我对定位器的建议是错误的。请让我知道

相关内容

最新更新