Сделайте все в функции в ожидании - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь протестировать проект с Selenium и Jasmine, и мне просто интересно, могу ли я найти все свои элементы, не набирая await 50 раз в describe. Некоторые вещи в JavaScript кажутся нелогичными, как, например, необходимость использовать async в функции для синхронизации.

describe('test layout of home page', () => {

    beforeEach(async () => {
        await this.browser = new selenium.Builder().withCapabilities(
            selenium.Capabilities.chrome()).build()
    })

    afterEach(async () => {
        await this.browser.quit()
    })

    it('should test the layout of the home page', async () => {
        await this.browser.get('my-page')
        expect(await this.browser.getTitle())
            .toBe('My Title')

        let element1 = await this.browser.findElement(By.css('#element1'))
        expect(element1).toBe('something')

        let element2 = await this.browser.findElement(By.css('#element2'))
        expect(element2).toBeGreaterThan('something else')

        let element3 = await this.browser.findElement(By.css('#element3'))
        expect(element3).toBeGreaterThan('something else')

        let element4 = await this.browser.findElement(By.css('#element4'))
        expect(element4).toBeGreaterThan('something else')

        // used 'async' 3 times and 'await' 8 times

Если с тестом все в порядке, вам не нужно его использовать так часто. Но если вы TDD -ing, вы не получите никаких отзывов о том, что он не может найти. Есть ли способ заставить это работать без ввода await для всего?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...