cancel
Showing results for 
Search instead for 
Did you mean: 

Estado de CheckBox True/False

OrlandoTrivella
Level 3
Alguém já teve problemas em adquirir o estado (True/False) de um Checkbox que se apresenta da seguinte maneira no Internet Explorer?

1562.jpgou

1563.jpg

<span data-automationid="ctl02_0" jsvalue="Volume">

<input name="M1$C$Wizard$ctl16$ID1$ctl00$DX_NUTLABEL_CALC_TYPE$ctl02$0" id="M1_C_Wizard_ctl16_ID1_ctl00_DX_NUTLABEL_CALC_TYPE_ctl02_0" type="checkbox">

<label for="M1_C_Wizard_ctl16_ID1_ctl00_DX_NUTLABEL_CALC_TYPE_ctl02_0">Volume (100ml)</label>

</span>

O atributo "Checked" para o elemento sempre se apresenta como "False" ele estando selecionado ou não.

1564.jpg
Alguma ideia para capturar a informação de o CheckBox está selecionado ou não?






------------------------------
Desenvolvedor
BITi9 Business IT Innovation
------------------------------
8 REPLIES 8

Olá!

Você já tentou utilizar um estágio "Read" e as ações "Get Text" e "Get Attribute (com o Checked)"  pra ver se ambas retornam False em todas as situações?

Caso não dê certo, em último caso você pode tentar utilizar o "Acessibility Mode", com ele também é possível utilizar um estágio "Read" e verificar se o check box está marcado.

Abraços,  



------------------------------
Marcelo Guimarães
Consultant
Bridge Consulting
------------------------------

Ola, 

Nao tive dificuldade alguma em ler o Status de um checkbox no explorer.  

Utilizei um READER stage utilizando um simples medodo GET Current Value no elemento Checkbox.

1479.png



Atributos do Elemento mapeado no Explorer

1480.png

Resultado dos testes:


1481.png

1482.png


------------------------------
Marcelo Gavazzi
Senior Solutions Engineer
Innovation Centre
Blue Prism Software
------------------------------

Primeiramente, obrigado a todos

Acredito que parte da dificuldade tem como origem a maneira como está sendo identificado o elemento no caso que estou tratando.

O Checkbox é identificado como um Label e ao efetuar o Get Current Value o retorno é o texto do Label.

1486.png  e
1487.png

O resultado é o mesmo

1488.png


------------------------------
Desenvolvedor
BITi9 Business IT Innovation
------------------------------

Por questoes de estilo aplicados no HTML, muitas vezes fica dificil selecionar exatamente o elemento - Normalmente o checkbox tem 3 areas - o label, o box, e uma container que contem os dois. Quando tenho dificuldades de espiar um elemento, eu abro o DOM e navego no documento por la. Na hora de interrogar o elemento, dentro do aplication modeler, ao invez de selecionar (IDENTIFY),   use o dropdown e busque pela opcao "Open Application Navigator" para navegar o DOM da pagina em questao. Entao, navegue pelo DOM ate encontrar exatamente o elemento CHECKBOX a estrutura do HTML, e click OK para a selecao. 

1496.png



1497.png


1498.png


------------------------------
Marcelo Gavazzi
Senior Solutions Engineer
Blue Prism Software
------------------------------

Neste momento vai ficar um pouco mais difícil de demonstrar oque ocorre.

Checkbox a ser manipulado está em Frame que é aberto sobre a janela principal do IE11 e apesar de ser parte da mesma página exibida, ao acionar  o "Application Navigator", todos os elementos exibidos fazem parte da página principal e não deste Frame.

Exemplo: Este print foi tirado com o Checkbox visível e selecionável via indicação porém nenhum destes elementos ou em suas expansões constam no segundo frame onde está o Checkbox.

1509.png


------------------------------
Desenvolvedor
BITi9 Business IT Innovation
------------------------------

Continuo buscando soluções de mapeamento deste elemento ainda sem sucesso em identificar o componente ChekBox tentando não selecionar o Container.

------------------------------
Desenvolvedor
BITi9 Business IT Innovation
------------------------------

Nao tive problema algum ao tentar trabalhar com um checkbox dendro de um Frame. 
Veja o exemplo abaixo.
Se voce continua tendo dificuldades, poste um exemplo simplificado que reproduza o problema.
Ou - Entre em contato com o suporte e com certeza alguem ajuda-lo.


Pagina Main.html

<iframe src="http://localhost:8088/checkbox.html"></iframe>


Pagina Checkbox.html

<span data-automationid="ctl02_0" jsvalue="Volume">
<input name="M1$C$Wizard$ctl16$ID1$ctl00$DX_NUTLABEL_CALC_TYPE$ctl02$0"  id="M1_C_Wizard_ctl16_ID1_ctl00_DX_NUTLABEL_CALC_TYPE_ctl02_0" type="checkbox">
<label for="M1_C_Wizard_ctl16_ID1_ctl00_DX_NUTLABEL_CALC_TYPE_ctl02_0">Volume (100ml)</label>
</span>

1537.png
1538.png

1539.png
1540.png


------------------------------
Marcelo Gavazzi
Senior Solutions Engineer
Blue Prism Software
------------------------------

OrlandoTrivella
Level 3
Primeiramente, obrigado a todos que colaboraram na tentativa de solução!

Consegui obter o estado do Checkbox usando "Navigate/Insert Javascript Fragment" com o seguinte Script obtido em consuntas à internet e modificado:

===============================================================================

if (document.getElementById('JSOutput') == null){
// Add invisible textbox
var body = document.getElementsByTagName('body')[0];
var text = document.createElement('input');
text.id = 'JSOutput';
text.style.display = 'none';
body.insertBefore(text, body.firstChild);
}
else {
// Clear invisible textbox
document.getElementById('JSOutput').innerText = '';
}

iframe = document.getElementById('dialogFrame');
ibody = iframe.contentWindow.document.body;
inputCheckbox = ibody.querySelector('#M1_C_Wizard_ctl16_ID1_ctl00_DX_NUTLABEL_CALC_TYPE_ctl02_1');
checked = inputCheckbox.checked
document.getElementById('JSOutput').innerText = checked;

===============================================================================
Este script cria no corpo da página um campo oculto de nome JSOutput que contem o estado do Checkbox.

Este campo JSOutput  é facilmente localizável no Application Modeller para ser lido para obtenção do estado do Checkbox.

Novamente, obrigado aos envolvidos!



------------------------------
Desenvolvedor
BITi9 Business IT Innovation
------------------------------