Skip to content

Searching for HTML elements works only on first rootPage in E2E testing #73

@sasos90

Description

@sasos90

Hey guys!

I am facing one issue when I try to run E2E tests. I am using Protractor (5.1.2) for E2E tests.
So everything works fine when I try to search for elements on the rootPage. My tests look like this:

game.navigateToRoot();
game.startGame();
game.playTheGame();

Navigation to root works fine, I can normally find the START BUTTON and click on it, which leads me to the GameComponent (I actually change the root like this.nav.setRoot(GameComponent)).
When the game panel is shown, I can not do any HTML selector query, not even (browser.title), because neither one Promise callback is executed. I tried to wait the browser with:

const until = rotractor.ExpectedConditions;
browser.wait(until.presenceOf(game.getFinalResultWrapper()), 5000, 'Element taking too long to appear in the DOM');

Here is my game page object where I make HTML queries:

navigateToRoot() {
    return browser.get('');
}

startGame() {
    const startGameButton = this.getStartGameButton();
    this.getStartGameButton().click();
    // the NavController's root changes
}

getStartGameButton() {
    return $('#start-game');
}

getFinalResultWrapper() {
    return $('.level-complete-wrapper');
}

playTheGame() {
    // nothing works from now on
    const goalWrapper = $('#goal-wrapper');
    const until = protractor.ExpectedConditions;
    browser.wait(until.presenceOf(goalWrapper), 5000, 'Element taking too long to appear in the DOM');
    browser.getTitle().then((title) => {
        console.log('title = ', title);
    });
    $('#goal-wrapper').getSize().then((size) => {
        console.log(size);
    });
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions