Как написать тест автоматизации пользовательского интерфейса для расширения кода vs без использования исходного кода - PullRequest
0 голосов
/ 20 сентября 2019

Я пытаюсь написать сценарии автоматизации пользовательского интерфейса, чтобы выполнить автоматическое тестирование расширения кода против.Прочитав учебники о тестировании спектра / кода, я обнаружил, что им обоим нужен исходный код для выполнения тестов.Я пытаюсь выполнить со стороны QA, и, следовательно, у меня установлено расширение против моего кода, но теперь мне нужно выполнить автоматизацию.

Я могу запустить код и открыть расширение с помощью selenium-webdriver, ноне может получить доступ к элементам, которые загружаются в веб-представлении vs code.Код VS скрывает веб-элемент для расширения и, следовательно, selenium-webdriver не может найти элементы.

{ describe, it, after, before } require('mocha');
// const Config = require('../../config/config.json');
const webdriver = require('selenium-webdriver'),
      By = webdriver.By
const assert = require('chai').assert

function sleep(ms) {
        return new Promise(resolve => setTimeout(resolve, ms));
      }

        try{
            describe('Launch VS Code', function(){
                this.timeout(20000);
                let driver=  new webdriver.Builder()
                // The "9515" is the port opened by chrome driver.
                .usingServer('http://localhost:9515')
                .withCapabilities({
                  chromeOptions: {
                    // Here is the path to your Electron binary"
                    binary: 'path to vs code'
                  }
                })
                .forBrowser('electron')
                .build();

                it('open extension', async function(){
                    await driver.findElement(By.xpath(".//div[contains(@aria-label,'View')]")).click()
                    await driver.findElement(By.xpath("//*[text()='Command Palette...']")).click()
                    await driver.findElement(By.className('input')).sendKeys('extensionname')
                    await driver.findElement(By.xpath("//*[contains(text(),'extensionname')]")).click()
                    await sleep(5000)
                    await driver.findElement(By.xpath("//*[contains(@title,'extension title')]")).click()
                    var title =await driver.getTitle()
                    assert.equal(title,'extensiontitle')
                    await sleep(5000)
                    await driver.switchTo().frame(driver.findElement(By.tagName('iframe')))
                    await driver.getPageSource().then(function(tmptext){
                        console.log(tmptext.includes('extension web element'))
                    })


                });
            })
        }
        catch(ex){
            console.log(ex)
        }

код должен быть в состоянии найти веб-драйвер и завершить тест.

...