diff --git a/src/vs/workbench/contrib/extensions/browser/extensionsList.ts b/src/vs/workbench/contrib/extensions/browser/extensionsList.ts index 4c8e6373219..975786bc6f6 100644 --- a/src/vs/workbench/contrib/extensions/browser/extensionsList.ts +++ b/src/vs/workbench/contrib/extensions/browser/extensionsList.ts @@ -138,6 +138,7 @@ export class Renderer implements IPagedRenderer { addClass(data.element, 'loading'); data.root.removeAttribute('aria-label'); + data.root.removeAttribute('data-extension-id'); data.extensionDisposables = dispose(data.extensionDisposables); data.icon.src = ''; data.name.textContent = ''; @@ -150,6 +151,7 @@ export class Renderer implements IPagedRenderer { renderElement(extension: IExtension, index: number, data: ITemplateData): void { removeClass(data.element, 'loading'); + data.root.setAttribute('data-extension-id', extension.identifier.id); if (extension.state !== ExtensionState.Uninstalled && !extension.server) { // Get the extension if it is installed and has no server information diff --git a/test/automation/src/extensions.ts b/test/automation/src/extensions.ts index f7bf11891b9..5ef6b497932 100644 --- a/test/automation/src/extensions.ts +++ b/test/automation/src/extensions.ts @@ -34,10 +34,9 @@ export class Extensions extends Viewlet { await this.code.waitForTypeInEditor(SEARCH_BOX, `@id:${id}`); } - async installExtension(id: string, name: string, version: string, publisherDisplayName: string): Promise { + async installExtension(id: string): Promise { await this.searchForExtension(id); - const ariaLabel = `${name}, ${version}, ${publisherDisplayName}, press enter for extension details.`; - await this.code.waitAndClick(`div.extensions-viewlet[id="workbench.view.extensions"] .monaco-list-row[aria-label="${ariaLabel}"] .extension-list-item li[class='action-item'] .extension-action.install`); + await this.code.waitAndClick(`div.extensions-viewlet[id="workbench.view.extensions"] .monaco-list-row[data-extension-id="${id}"] .extension-list-item li[class='action-item'] .extension-action.install`); await this.code.waitForElement(`.extension-editor .monaco-action-bar .action-item:not(.disabled) .extension-action.uninstall`); } } diff --git a/test/smoke/src/areas/extensions/extensions.test.ts b/test/smoke/src/areas/extensions/extensions.test.ts index d0820a78a7a..756980f5bae 100644 --- a/test/smoke/src/areas/extensions/extensions.test.ts +++ b/test/smoke/src/areas/extensions/extensions.test.ts @@ -17,7 +17,7 @@ export function setup() { await app.workbench.extensions.openExtensionsViewlet(); - await app.workbench.extensions.installExtension('michelkaporin.vscode-smoketest-check', 'vscode-smoketest-check', '0.0.1', 'Michel Kaporin'); + await app.workbench.extensions.installExtension('michelkaporin.vscode-smoketest-check'); await app.workbench.extensions.waitForExtensionsViewlet(); diff --git a/test/smoke/src/areas/workbench/localization.test.ts b/test/smoke/src/areas/workbench/localization.test.ts index dc8c4325046..0fb5e0cb247 100644 --- a/test/smoke/src/areas/workbench/localization.test.ts +++ b/test/smoke/src/areas/workbench/localization.test.ts @@ -15,7 +15,7 @@ export function setup() { } await app.workbench.extensions.openExtensionsViewlet(); - await app.workbench.extensions.installExtension('ms-ceintl.vscode-language-pack-de', 'German Language Pack for Visual Studio Code', '1.48.2', 'Microsoft'); + await app.workbench.extensions.installExtension('ms-ceintl.vscode-language-pack-de'); await app.restart({ extraArgs: ['--locale=DE'] }); });