protractor : unable to click the button

2020-04-16 03:41发布

问题:

Im new to protractor e2e testing. Writing jasmine test cases using protractor. I have two buttons in a html file. I want to select the specific button(button in begin.html file)

These did not work

element(by.id('gotest')).click();

by.linkUiSref('about-you');

performing some event on the button should navigate to next page(about-you)

Please help me

Text.html

<div class="button">
    <a ui-sref="begin">
        <button class="green">Text</button>
    </a>
</div>

<ng-include src="'../begin.html'" class="hidden"></ng-include>

begin.html

<div class="button">
    <button class="green" id="gotest" ui-sref="about-you">Start</button>
</div> 

回答1:

Protractor works fast and asynchronous. So, your button click might just be executed even before the page is ready and hence you get errors. To resolve this issue you can first try to find the element using wait function in protractor and then using the promise that the wait returns, you can click on the button.

Below code might help you -

var elementToClick = $('#gotest');
browser.wait(protractor.ExpectedConditions.elementToBeClickable(elementToClick), 10000)
.then ( function () {
    elementToClick.click();
});

Hope this solved your problem.



回答2:

Try:

element(by.buttonText('Start')).click();

otherwise please send what error you have got.



标签: protractor