Для l oop в жасмине с селеном - PullRequest
0 голосов
/ 10 марта 2020

Я использую жасмин вместе с селеном.

Проблема, с которой я сталкиваюсь, заключается в том, что мне нужно запустить жасмин spe c для получения списка элементов. Чтобы сделать это, я должен асинхронно выбрать элемент с селеном, а затем пройтись по всем элементам, для которых выполняется тест жасмина.

Проблема в том, что $anchors в приведенном ниже коде равно undefined, когда начинаются тесты выполнить. Это означает, что Жасмин пропустит выполнение тестов в течение l oop.

Есть идеи, как обойти это?

Код ниже.

describe('[Footer Social Icons]', () => {
  const driver: WebDriver = (jasmine.getEnv() as any).driver;
  (jasmine as any).DEFAULT_TIMEOUT_INTERVAL = 60000;

  let $component: WebElement;
  let $anchors: WebElement[];

  beforeAll(async () => {
    $component = await $(By.css(`.footer-social-icons`), driver);
    $anchors = await $$(By.css('a'), $component);
  });

  describe('GIVEN that the page has loaded', () => {
    const test_target_blank = ($a: WebElement) => {
      it('THEN it should contain a list of anchors with target="_blank"', async () => {
        expect(await $a.getAttribute('target')).toBe('_blank');
      });
    };

    const test_sr_only = ($a: WebElement) => {
      it('THEN it should have an sr-only text inside each anchor', async () => {
        expect(await $(By.css('.sr-only'), $a)).toBeTruthy();
      });
    };

    for (const $a of $anchors) {
      test_sr_only($a);
      test_target_blank($a);
    }
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...