Возможности браузера в TestCafe - PullRequest
2 голосов
/ 15 октября 2019

Использовали веб-приложение в Chrome (клиент собрания), которое использует webRTC (необходим доступ к микрофону и камере) при попытке использовать локально установленный браузер Chrome для выполнения тестов.

Экземпляр Chrome, запущенный Testcafe, не разрешает доступ к микрофону и камере. Есть ли способ передать возможности Chrome, как мы делаем для Selenium и Protractor?

Существуют некоторые альтернативы для browserstack плагинов, однако мы планируем реализовать его для локально установленного браузера, где мы можем включить доступ к микрофону и камере.

Обходной путь пробовал: Устал подавать фальшивый поток мультимедиа, используя аргументы браузера Chrome, такие как --use-fake-ui-for-media-stream --use-fake-device-for-media-stream. (Неуспешно)

Код теста:

import {Selector, t} from 'testcafe';

fixture(`Test Page`)
    .page('XXXXXXXXXXXXXX');

test('Validating Sanity of WebApp', async t => {
    await t
    .click(Selector('#create_meeting_btn1'));
});

Код запуска командной строки:

testcafe chrome test.js

1 Ответ

2 голосов
/ 15 октября 2019

Chrome не позволяет вызывать API getUserMedia из незащищенного источника. Вам нужно запустить TestCafe через HTTPS. См. Пошаговую инструкцию в этом комментарии, как указано ниже.

  1. Укажите localhost в качестве имени хоста при запуске TestCafe:

    testcafe --hostname localhost ...
    
  2. Получите действительный сертификат SSL или зарегистрируйте самоподписанный сертификат как действительный в вашей операционной системе и включите режим HTTPS в TestCafe:

    testcafe --ssl pfx=/path/to/cert.pfx ...
    

Я попробовал следующий пример, и он работал для меня с --hostname localhost:

fixture `WebRTC`
    .page`https://webrtc.github.io/samples/src/content/getusermedia/canvas/`;

test(`test`, async t => t.wait(30000));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...