studio
2024.10
false
Importante :
A localização de um conteúdo recém-publicado pode levar de 1 a 2 semanas para ficar disponível.
UiPath logo, featuring letters U and I in white

Guia do usuário do Studio

Última atualização 13 de jun de 2025

Solução de problemas

Observação: você precisa usar pelo menos o Firefox versão 52.0 para executar as automações do navegador.

Este tópico apresenta os motivos mais frequentes pelos quais a Extensão para Firefox pode não funcionar corretamente e como resolver esses problemas.

Extensão em versões do Firefox anteriores à v128 ou v115 ESR

According to Mozilla announcement about Firefox's root certificate expiration on March 14, 2025, extensions fail to install in Firefox versions older than v128 or v115.13 ESR.
  • If the extension is already installed in Firefox, it will continue to work even after the root certificate expires.
  • If the extension is installed after the root certificate expires, it will be disabled and will not work.

You can apply certain workarounds, but this depends on how old your Firefox version is and whether or not it is an ESR (Extended Support Release) version.

Solução para Firefox ESR

  1. Acesse about:config.
  2. Alternar sinalizador xpinstall.signatures.requiredpara false.

It is preferable to automatically apply this setting to all profiles using one of the methods listed below.

Firefox v102.10 ESR ou mais recente

Você pode usar a Política de Grupo para modificar a preferência xpinstall.signatures.required para todos os usuários e perfis automaticamente.Para obter mais detalhes, consulte Modelos de Política para o Firefox.

Firefox mais antigo que v102.10 ESR

Versões mais antigas do Firefox não oferecem suporte a xpinstall.signatures.required por meio da Política de Grupo. Como alternativa, você pode usar os arquivos do AutoConfig:
  1. Salve o seguinte em um arquivo de texto:

    // First line must be a comment.
    pref("xpinstall.signatures.required", false);// First line must be a comment.
    pref("xpinstall.signatures.required", false);
  2. Nomeie o arquivo de texto allow-unsigned-extensions.cfg.
  3. Salve o seguinte em um arquivo de texto:

    // First line must be a comment. 
    pref("general.config.filename", "allow-unsigned-extensions.cfg"); pref("general.config.obscure_value", 0);// First line must be a comment. 
    pref("general.config.filename", "allow-unsigned-extensions.cfg"); pref("general.config.obscure_value", 0);
  4. Nomeie o arquivo de texto allow-unsigned-extensions.js.
  5. Localize o diretório de instalação do Firefox, normalmente C:\Program Files\Mozilla Firefox.
  6. Copie allow-unsigned-extensions.cfg para C:\Program Files\Mozilla Firefox.
  7. Copie allow-unsigned-extensions.js para C:\Program Files\Mozilla Firefox\pref.

Firefox - versões padrão

Para versões do Firefox não ESR, você deve usar os arquivos AutoConfig.

  1. Salve o seguinte em um arquivo de texto:

    // First line must be a comment.
    
    // In Firefox 55+, settings to configure add-on signing (and legacy add-ons) are stored in AddonSettings.jsm
    // The module exports an object with read-only properties, but that is not an issue since we can just replace
    // the exported object.
    // https://searchfox.org/mozilla-central/rev/2e08acdf8862e68b13166970e17809a3b5d6a555/toolkit/mozapps/extensions/internal/AddonSettings.jsm
    
    Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
    
    function patchAddonSettings(modulePath) {
        var Module = Components.utils.import(modulePath, {});
        // Note: we read the data from preferences instead of hard-coding a "true", so
        // that by default legacy add-ons are disabled. This enables the user to only
        // enable legacy add-ons for specific Firefox profiles when really needed.
        var AddonSettings;
    
        if ("lazy" in Module) {
          AddonSettings = Object.create(Module.lazy.AddonSettings);
        } else {
          AddonSettings = Object.create(Module.AddonSettings);
        }
        XPCOMUtils.defineLazyPreferenceGetter(AddonSettings, "REQUIRE_SIGNING", "xpinstall.signatures.required", false);
        XPCOMUtils.defineLazyPreferenceGetter(AddonSettings, "ALLOW_LEGACY_EXTENSIONS", "extensions.legacy.enabled", true);
        XPCOMUtils.defineLazyPreferenceGetter(AddonSettings, "LANGPACKS_REQUIRE_SIGNING", "extensions.langpacks.signatures.required", false);
    
        if ("lazy" in Module) {
          Module.lazy.AddonSettings = AddonSettings;
        } else {
          Module.AddonSettings = AddonSettings;
        }
    }
    
    // This is necessary to allow legacy add-ons via preferences.
    try {
      patchAddonSettings("resource://gre/modules/addons/XPIProvider.jsm");
    } catch (e) {
      // AddonSettings is not in this file starting with Firefox 61,
      // but it comes back in Firefox 74
    }
    
    try {
      patchAddonSettings("resource://gre/modules/addons/XPIDatabase.jsm");
    } catch (e) {
      // AddonSettings is not in this file until Firefox 61
    }
    
    // This override is needed to enable unsigned add-ons via preferences.
    patchAddonSettings("resource://gre/modules/addons/XPIInstall.jsm");
    
    // This override is needed to allow unsigned add-ons to show up without warning in about:addons.
    // (this is UI-only, the add-on is not actually disabled despite what the UI claims).
    patchAddonSettings("resource://gre/modules/addons/AddonSettings.jsm");
    
    Components.classes['@mozilla.org/consoleservice;1']
    .getService(Components.interfaces.nsIConsoleService)
    .logStringMessage("enablelegacy.cfg: the extensions.legacy.enabled preference is working again.");
    
    pref("xpinstall.signatures.required", false);// First line must be a comment.
    
    // In Firefox 55+, settings to configure add-on signing (and legacy add-ons) are stored in AddonSettings.jsm
    // The module exports an object with read-only properties, but that is not an issue since we can just replace
    // the exported object.
    // https://searchfox.org/mozilla-central/rev/2e08acdf8862e68b13166970e17809a3b5d6a555/toolkit/mozapps/extensions/internal/AddonSettings.jsm
    
    Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
    
    function patchAddonSettings(modulePath) {
        var Module = Components.utils.import(modulePath, {});
        // Note: we read the data from preferences instead of hard-coding a "true", so
        // that by default legacy add-ons are disabled. This enables the user to only
        // enable legacy add-ons for specific Firefox profiles when really needed.
        var AddonSettings;
    
        if ("lazy" in Module) {
          AddonSettings = Object.create(Module.lazy.AddonSettings);
        } else {
          AddonSettings = Object.create(Module.AddonSettings);
        }
        XPCOMUtils.defineLazyPreferenceGetter(AddonSettings, "REQUIRE_SIGNING", "xpinstall.signatures.required", false);
        XPCOMUtils.defineLazyPreferenceGetter(AddonSettings, "ALLOW_LEGACY_EXTENSIONS", "extensions.legacy.enabled", true);
        XPCOMUtils.defineLazyPreferenceGetter(AddonSettings, "LANGPACKS_REQUIRE_SIGNING", "extensions.langpacks.signatures.required", false);
    
        if ("lazy" in Module) {
          Module.lazy.AddonSettings = AddonSettings;
        } else {
          Module.AddonSettings = AddonSettings;
        }
    }
    
    // This is necessary to allow legacy add-ons via preferences.
    try {
      patchAddonSettings("resource://gre/modules/addons/XPIProvider.jsm");
    } catch (e) {
      // AddonSettings is not in this file starting with Firefox 61,
      // but it comes back in Firefox 74
    }
    
    try {
      patchAddonSettings("resource://gre/modules/addons/XPIDatabase.jsm");
    } catch (e) {
      // AddonSettings is not in this file until Firefox 61
    }
    
    // This override is needed to enable unsigned add-ons via preferences.
    patchAddonSettings("resource://gre/modules/addons/XPIInstall.jsm");
    
    // This override is needed to allow unsigned add-ons to show up without warning in about:addons.
    // (this is UI-only, the add-on is not actually disabled despite what the UI claims).
    patchAddonSettings("resource://gre/modules/addons/AddonSettings.jsm");
    
    Components.classes['@mozilla.org/consoleservice;1']
    .getService(Components.interfaces.nsIConsoleService)
    .logStringMessage("enablelegacy.cfg: the extensions.legacy.enabled preference is working again.");
    
    pref("xpinstall.signatures.required", false);
    
  2. Nomeie o arquivo de texto enable-legacy.cfg.
  3. Salve o seguinte em um arquivo de texto:

    // First line must be a comment. pref("general.config.filename", "enablelegacy.cfg"); 
    pref("general.config.obscure_value", 0); pref("general.config.sandbox_enabled", false);// First line must be a comment. pref("general.config.filename", "enablelegacy.cfg"); 
    pref("general.config.obscure_value", 0); pref("general.config.sandbox_enabled", false);
  4. Nomeie o arquivo de texto enablelegacy-prefs.js.
  5. Localize o diretório de instalação do Firefox, normalmente C:\Program Files\Mozilla Firefox.
  6. Copie allow-unsigned-extensions.cfg para C:\Program Files\Mozilla Firefox.
  7. Copie allow-unsigned-extensions.js para C:\Program Files\Mozilla Firefox\defaults\pref.
Observação:

Recent versions of Firefox, like 102.10 ESR, re-enable the extension automatically once the flag is set. In older versions such as 68.0.2 ESR, it may be necessary to reinstall the extension.

O método de instalação da Política de Grupo Offline não funciona com o Firefox 68.0.2 ESR e, possivelmente, versões mais antigas. Uma solução temporária envolve adicionar o seguinte a um script do PowerShell e executá-lo com privilégios de administrador:

# Define the registry path
$regPath = "HKLM:\SOFTWARE\Policies\Mozilla\Firefox\Extensions\Install"

function Convert-WindowsPathToFileUrl($path) {
    $unixPath = $path -replace '\\', '/'
    $escapedPath = $unixPath -replace ' ', '%20'
    return "file:///" + $escapedPath
}

function Fix-FirefoxProfile($prefsPath, $fileUrl) {
    if (-not (Test-Path $prefsPath)) {
        Write-Host "prefs.js not found: $prefsPath"
        return
    }

    Write-Host "Processing prefs.js: $prefsPath"

    $content = Get-Content -Path $prefsPath -Raw

    $pattern = 'user_pref\("browser\.policies\.runOncePerModification\.extensionsInstall",\s*"(.+?)"\);'

    if (-not ($content -match $pattern)) {
        Write-Host " -> No matching preference found in prefs.js."
        return
    }

    $jsonArrayString = $matches[1]

    # Unescape \" to "
    $jsonArrayStringUnescaped = $jsonArrayString -replace '\\\"', '"'

    try {
        $list = ConvertFrom-Json -InputObject $jsonArrayStringUnescaped
    } catch {
        Write-Host " -> Error parsing JSON inside prefs.js preference (after unescaping)."
        return
    }

    if (-not ($list -contains $fileUrl)) {
        Write-Host " -> File URL not present in extensionsInstall list."
        return
    }

    $newList = $list | Where-Object { $_ -ne $fileUrl }

    $newJsonArrayString = ($newList | ConvertTo-Json -Compress)

    # prefs.js expects it wrapped as a string, escaping " as \"
    $escapedNewJsonArrayString = $newJsonArrayString -replace '"', '\"'

    $newPrefLine = "user_pref(""browser.policies.runOncePerModification.extensionsInstall"", `"$escapedNewJsonArrayString`");"

    # Replace the old line
    $oldPrefLine = $matches[0]
    $content = $content -replace [regex]::Escape($oldPrefLine), $newPrefLine

    Set-Content -Path $prefsPath -Value $content -Encoding UTF8
    Write-Host " -> prefs.js updated."
}

function Fix-AllFirefoxProfiles($fileUrl) {
    $profilesPath = "$env:APPDATA\Mozilla\Firefox\Profiles"

    if (-not (Test-Path $profilesPath)) {
        Write-Host "Firefox profiles directory not found: $profilesPath"
        return
    }

    $profiles = Get-ChildItem -Path $profilesPath -Directory
    foreach ($profile in $profiles) {
        $prefsPath = Join-Path $profile.FullName "prefs.js"
        Fix-FirefoxProfile -prefsPath $prefsPath -fileUrl $fileUrl
    }
}

if (-not (Test-Path $regPath)) {
    Write-Host "Registry path not found: $regPath"
    return
}

$values = Get-ItemProperty -Path $regPath

foreach ($property in $values.PSObject.Properties) {
    $name = $property.Name
    $value = $property.Value

    if ($value -notmatch "^[a-zA-Z]:\\.*\\uipath-ff\.xpi$") {
        continue
    }

    Write-Host "Found Windows path for uipath-ff.xpi in entry '$name': $value"

    $fileUrl = Convert-WindowsPathToFileUrl $value
    Write-Host " -> Converted to file URL: $fileUrl"

    Set-ItemProperty -Path $regPath -Name $name -Value $fileUrl
    Write-Host " -> Updated registry key '$name'."

    Fix-AllFirefoxProfiles -fileUrl $fileUrl
}# Define the registry path
$regPath = "HKLM:\SOFTWARE\Policies\Mozilla\Firefox\Extensions\Install"

function Convert-WindowsPathToFileUrl($path) {
    $unixPath = $path -replace '\\', '/'
    $escapedPath = $unixPath -replace ' ', '%20'
    return "file:///" + $escapedPath
}

function Fix-FirefoxProfile($prefsPath, $fileUrl) {
    if (-not (Test-Path $prefsPath)) {
        Write-Host "prefs.js not found: $prefsPath"
        return
    }

    Write-Host "Processing prefs.js: $prefsPath"

    $content = Get-Content -Path $prefsPath -Raw

    $pattern = 'user_pref\("browser\.policies\.runOncePerModification\.extensionsInstall",\s*"(.+?)"\);'

    if (-not ($content -match $pattern)) {
        Write-Host " -> No matching preference found in prefs.js."
        return
    }

    $jsonArrayString = $matches[1]

    # Unescape \" to "
    $jsonArrayStringUnescaped = $jsonArrayString -replace '\\\"', '"'

    try {
        $list = ConvertFrom-Json -InputObject $jsonArrayStringUnescaped
    } catch {
        Write-Host " -> Error parsing JSON inside prefs.js preference (after unescaping)."
        return
    }

    if (-not ($list -contains $fileUrl)) {
        Write-Host " -> File URL not present in extensionsInstall list."
        return
    }

    $newList = $list | Where-Object { $_ -ne $fileUrl }

    $newJsonArrayString = ($newList | ConvertTo-Json -Compress)

    # prefs.js expects it wrapped as a string, escaping " as \"
    $escapedNewJsonArrayString = $newJsonArrayString -replace '"', '\"'

    $newPrefLine = "user_pref(""browser.policies.runOncePerModification.extensionsInstall"", `"$escapedNewJsonArrayString`");"

    # Replace the old line
    $oldPrefLine = $matches[0]
    $content = $content -replace [regex]::Escape($oldPrefLine), $newPrefLine

    Set-Content -Path $prefsPath -Value $content -Encoding UTF8
    Write-Host " -> prefs.js updated."
}

function Fix-AllFirefoxProfiles($fileUrl) {
    $profilesPath = "$env:APPDATA\Mozilla\Firefox\Profiles"

    if (-not (Test-Path $profilesPath)) {
        Write-Host "Firefox profiles directory not found: $profilesPath"
        return
    }

    $profiles = Get-ChildItem -Path $profilesPath -Directory
    foreach ($profile in $profiles) {
        $prefsPath = Join-Path $profile.FullName "prefs.js"
        Fix-FirefoxProfile -prefsPath $prefsPath -fileUrl $fileUrl
    }
}

if (-not (Test-Path $regPath)) {
    Write-Host "Registry path not found: $regPath"
    return
}

$values = Get-ItemProperty -Path $regPath

foreach ($property in $values.PSObject.Properties) {
    $name = $property.Name
    $value = $property.Value

    if ($value -notmatch "^[a-zA-Z]:\\.*\\uipath-ff\.xpi$") {
        continue
    }

    Write-Host "Found Windows path for uipath-ff.xpi in entry '$name': $value"

    $fileUrl = Convert-WindowsPathToFileUrl $value
    Write-Host " -> Converted to file URL: $fileUrl"

    Set-ItemProperty -Path $regPath -Name $name -Value $fileUrl
    Write-Host " -> Updated registry key '$name'."

    Fix-AllFirefoxProfiles -fileUrl $fileUrl
}

Extensão em versões do Firefox anteriores à 65.0

Description

A Mozilla introduziu um algoritmo de verificação de assinatura de extensões no Firefox, que desabilita complementos para o Firefox nas versões 65.0 e inferiores. Dessa forma, se você instalar a extensão da UiPath para o Firefox na versão 65.0 do navegador ou inferior, a seguinte mensagem de erro é exibida:

This add-on could not be installed because it appears to be corrupt.

Solução 1

Atualize o Firefox para a versão v66.0.4 ou posterior.

Solução 2

A partir do Studio 2020.8, a extensão do Firefox foi assinada recentemente e precisa ser devidamente instalada em versões mais antigas do navegador Firefox.

Terms of Use and Privacy Notice Popup Window

Description

Starting with Firefox v138, the following prompt is displayed when starting the browser and may affect your automations:

Figura 1. . docs image
Solução

The only solution to skip this prompt is to set the SkipTermsOfUse Group Policy as described here.

Verificando a Extensão

Verifique se a extensão da UiPath para o Firefox está instalada e habilitada:

  1. No Mozilla Firefox, acesse about:addons > Extensões.
  2. Se a extensão não estiver presente, instale-a conforme explicado aqui.
  3. Certifique-se de que a extensão da UiPath esteja atualizada na versão mais recente.

Para evitar possíveis problemas:

  1. No Mozilla Firefox, acesse about:addons > Extensões.
  2. Abra o Gerenciador de Tarefas ou o Explorador de Processos.
  3. Verifique se o processo ChromeNativeMessaging.exe está em execução.
    Observação: uma instância separada ChromeNativeMessaging está em execução para a extensão do Chrome, então você precisa fechar o Google Chrome ao realizar esta verificação.
Se ChromeNativeMessaging não estiver em execução:
  1. No Mozilla Firefox, acesse about:addons > Extensões.
  2. Remova a extensão da UiPath manualmente clicando no botão Remover.
  3. Reinstale-a conforme explicado aqui.

Caso as informações acima não resolvam seu problema, você pode tentar buscar informações adicionais visualizando rastreamentos e analisando os erros gerados pela extensão da UiPath. Os tipos de rastreamento a seguir são aqueles que você pode coletar e analisar:

Para os rastreamentos gerais de extensão no Mozilla Firefox:

Acesse Abrir menu > Desenvolvedor Web > Console do Navegador (Ctrl+Shift+J). O Console do navegador será exibido. Todos os erros gerados pela extensão são exibidos aqui.

Para os rastreamentos gerados pela página web que você deseja automatizar:

Acesse Abrir menu> Desenvolvedor Web > Console Web (Ctrl+Shift+K). O Console do navegador será exibido. Todos os erros para a página Web atual são exibidos aqui.

Para rastreamentos completos, (não apenas erros) faça o seguinte:

  1. Abra o Editor do Registro.
  2. Navegue até a chave HKEY_CURRENT_USER\SOFTWARE\UiPath.
  3. Clique duas vezes no valor WebExtensionTrace REG_DWORD. A janela Editar valor DWORD será exibida.
  4. No campo Dados de Valor, altere o valor para 1, e clique em OK. O valor será salvo.
    Observação: se o valor REG_DWORD WebExtensionTrace não existir, você precisa criá-lo clicando com o botão direito do mouse no painel à direita, selecionando Novo > Valor DWORD (32-bit), e fornecendo os valores mencionados acima.

Verifique se há alguns dados ausentes no Editor do Registro:

  1. Abra o Editor do Registro.
  2. Navegue até a chave HKEY_CURRENT_USER\SOFTWARE\Mozilla\NativeMessagingHosts\com.uipath.chromenativemsg.
  3. Abra o valor REG_SZ (Default). A janela Editar String é exibida e deve conter um caminho semelhante a C:\Users\YOUR_USER_NAME\AppData\Local\UiPath\uipath-ff.json.
  4. Abra o arquivo .json no caminho encontrado acima com um editor de texto, como o Notepad++.
  5. Verifique se a propriedade path aponta corretamente para onde ChromeNativeMessaging.exe está localizado, de maneira semelhante a C:\Program Files (x86)\UiPath Studio\UiPath\BrowserExtension\ChromeNativeMessaging.exe.

Multiple browser profiles

A partir da versão 2023.10 do UiPath, a extensão UiPath para Firefox é compatível com a automação de várias instâncias de navegador em execução com vários perfis de usuário ao mesmo tempo.

Observação: a automação de vários perfis de navegador requer UiPath.UIAutomation.Activities v23.10 ou mais recente extensão do navegador instalada com UiPathStudio.msi v23.10 ou mais recente.

Agora é possível abrir o navegador com um perfil específico ao usar a atividade Use Application/Browser. Para especificar um perfil na inicialização do navegador, é necessário anexar um argumento à linha de comando do navegador. Para isso, use a propriedade Argumentos no campo de entrada Destino do Aplicativo Unificado.

Para Firefox, o argumento necessário é: -profile "full_profile_path". Para descobrir o caminho do perfil completo, navegue até about:profiles e obtenha o Diretório Raiz desse perfil.


Esta página foi útil?

Obtenha a ajuda que você precisa
Aprendendo RPA - Cursos de automação
Fórum da comunidade da Uipath
Uipath Logo White
Confiança e segurança
© 2005-2025 UiPath. Todos os direitos reservados.