Sherpa Designer: respostas para perguntas frequentes#
Qual é a razão pela qual o bloco "Verificar a presença do elemento" no projeto encontra o botão "Salvar", mesmo que ele não esteja presente no SAP?#
Pergunta: No projeto, o Robô verifica a presença do botão "Salvar" no SAP. Se não encontrar, clica no elemento "Modificar".
Infelizmente, o bloco "Verificar a presença do elemento" encontra o elemento "Salvar" mesmo que ele não exista.
Resposta:
Provavelmente, esse elemento está no cache do componente COM do SAP. Tente se reconectar ao SAP antes da verificação. Por exemplo, usando os blocos "Conectar" ou "Selecionar janela".
Existe a possibilidade de automação do 1C usando teclas de atalho?#
Pergunta: Existe a possibilidade de automação do 1C usando teclas de atalho?
Resposta:
Sim, existe. Você pode usar o guia do site oficial do 1C: https://its.1c.ru/db/v8std/content/430/hdoc
Ou a dica para atribuição de teclas de atalho no link:
Por que a lógica do bloco executar PowerShell funciona de forma diferente em comparação com o PowerShell embutido?#
Pergunta: Por que a lógica do bloco executar PowerShell funciona de forma diferente em comparação com o PowerShell embutido? E como usá-lo corretamente nesse caso. Estou tentando usar uma função – a saída correta deve ser False. Ao chamar essa função através do bloco PowerShell, ele retorna True (no segundo bloco).
A função é declarada aqui:
Resposta:
Use seus blocos para tais fins. É importante entender que tudo o que você escreve é executado dentro da função, pois cada bloco é uma função. Como resultado, tudo o que você atribuir a essa função será suas variáveis locais. Se você usar seu código, deve desativar o processamento de variáveis. Atualmente, todas as variáveis que você escreveu são convertidas em variáveis locais do script, especificamente dessa classe de diagrama.
O bloco “Execução de código Python” não funciona#
Pergunta: O que fazer se houver um problema ao usar o bloco “Execução de código Python”?
Resposta:
A ordem das ações é a seguinte:
1) Feche o Designer.
2) Exclua a pasta Library da pasta do projeto.
3) Baixe e atualize o Designer.
4) Certifique-se de que você tenha a versão do Python x64.
5) Verifique se a versão do Python não é superior a 3.12.
Erro “Seletor não encontrado”#
Pergunta: Ao automatizar um programa, há uma tarefa: inserir texto no campo de filtro. Estou usando o bloco “Pressionar teclas”, o seletor identifica o campo de texto e o destaca, mas ao depurar o robô ocorre o erro “Seletor não encontrado”. Por favor, me diga o que pode ser feito nesse caso?
Resposta:
Provavelmente, isso está relacionado ao fato de que, ao pressionar o botão “Depurar”, você torna a janela do Designer ativa, e ao clicar – o aplicativo novamente. Tente primeiro encontrar o ID do processo necessário e escrevê-lo no bloco de entrada de texto, assim você não precisará clicar no campo de filtro. Também é possível que o próprio clique e o início da edição no elemento mudem a árvore do seletor desse elemento. Por exemplo, pode aparecer uma barra extra ou até mesmo um campo de edição que não existia antes (ou você o viu na interface, mas tecnicamente não era um campo de edição até que você clicasse nele). Consequentemente, os seletores do elemento "já clicado" e "ainda não clicado" são diferentes. Tente gravar o seletor do elemento passivo, no qual você ainda não clicou e no qual o foco de entrada não está.
Qual pode ser a causa do erro ao extrair um intervalo da tabela, se uma variável igual a 1 for usada?#
Pergunta: É necessário recortar a tabela (extrair um intervalo), mas se no campo a coluna número=1 – funciona. Se lá a variável=1 – gera um erro. Qual pode ser o problema? A variável é obtida da atividade "verificar a existência de valor". A conversão adicional “_tonumber” não ajuda.
Resposta:
Nesse caso, a variável tem o tipo double. Ao especificar o indexador da coluna, você pode indicar uma string ou um número int32. Se uma variável do tipo double for especificada, o Framework tentará convertê-la para o tipo necessário. Como só podemos ter dois tipos, ele escolhe o mais apropriado sem perda de dados, que é a string (double => string). Como resultado, o Framework tenta indexar a coluna com "1", e não pelo número. Quando você força a conversão para o tipo [int], o Framework elimina todas as ambiguidades. Portanto, deve-se escrever [int]$DocCol, ou seja, converter o valor para um número int32.
É possível executar um script completo no Sherpa RPA, e não um script PowerShell de uma linha?#
Pergunta: É possível executar um script completo no Sherpa RPA, e não um script PowerShell de uma linha?
Resposta:
Sim, é possível, para isso é necessário usar o bloco “Executar expressão PowerShell”, desativar o processamento de variáveis nele, usando as constantes #StopRefactoring e #StartRefactoring da seguinte forma:
Insira o código dentro delas, mas depois, para entrada ou saída de valores das variáveis já fora dessas constantes, é necessário atribuir variáveis locais às variáveis do script.
Falha na codificação de caracteres****Pergunta: o que fazer se houver um problema de codificação de caracteres? Na codificação no computador, a codificação é Windows1251 e tudo está OK, mas no servidor, neste mesmo arquivo, nesta mesma codificação - falha.#
Resposta:
A falha na codificação de caracteres pode estar relacionada à codificação para versões russas do Microsoft Windows. Se você encontrar esse problema, tente fazer o seguinte:
Acesse as configurações de região no seu computador (Configurações => Hora e idioma => Região => Configurações adicionais => Padrões regionais => Avançado => Tela de boas-vindas e contas de novos usuários).
Na janela que se abre, marque as opções “Tela de boas-vindas e contas do sistema” e “Novas contas de usuários”.
Depois disso, o idioma da interface para a tela de boas-vindas e novas contas de usuários será alterado para “Russo” e o problema de falha na codificação será resolvido.
Como ignorar o número após a palavra "form" no id do campo de busca na página da web 1C ao atualizar a página?#
Pergunta: Há um problema, na página da web 1C, o id no div do campo de busca muda ao atualizar a página. Existe alguma maneira de ignorar o número após a palavra "form" e continuar a definir o seletor?
Por exemplo: INPUT[id='form1(?)_ВыходныеИзделияКоманднаяПанельВыходныеИзделияСтрокаПоиска_i0']
Resposta:
Aqui estão algumas abordagens que podem ajudá-lo a resolver esse problema:
- Uso de correspondência parcial de ID: Você pode usar um seletor que procura elementos por parte de seu ID. Por exemplo, se o ID sempre começa com "form", você pode usar o seletor
INPUT[id^='form'], que encontrará todos os elementos cujo ID começa com "form".
Existem outros tipos de substituições, mais detalhes aqui. - Uso de atributos: Se o elemento tiver outros atributos que não mudam, você pode usá-los para criar um seletor mais estável. Por exemplo, se o campo de busca tiver um atributo class, você pode usar o seletor
INPUT[class='your-class-name']. - Índices: Se houver vários elementos na página com os mesmos atributos, você pode usar um índice para selecionar o elemento desejado.
- Uso de conteúdo de texto: Se o elemento tiver conteúdo de texto, você pode usá-lo para criar um seletor.
- Uso de elementos pai: Se o elemento tiver um pai único, você pode usá-lo para criar um seletor. Por exemplo,
DIV[class='parent-class'] > INPUT[id^='form'].