Webbrowser - Clicar em célula da tabela sem ID e Name

14/09/2020

4

Estou precisando de simular um clique em uma célula de uma tabela no Webbrowser que não tem ID e Name. Somente a tabela tem seu ID.

Essa tabela é para controle de paginação. Preciso clicar na célula "Next" para ir para próxima página.

Como faço para clicar nesta célula sem identificação?

Segue o trecho do HTML da parte desta tabela:

<div align="center">
   <div class="dr-dscr rich-datascr" id="form:j_id162:dtRick" style="" align="center">
      <table border="0" cellpadding="0" cellspacing="1" class="dr-dscr-t rich-dtascroller-table" id="form:j_id162:dtRick_table" style="text-align:center">
         <tbody>
            <tr>
               <td class="dr-dscr-button-dsbld rich-datascr-button-dsbld dr-dscr-button rich-datascr-button">
                  <img src="/nfse/resources/images/bt_primeira_pagina_disable.gif">
               </td>
               <td class="dr-dscr-button-dsbld rich-datascr-button-dsbld dr-dscr-button rich-datascr-button">
                  <img src="/nfse/resources/images/bt_anterior_disable.gif">
               </td><td class="dr-dscr-act rich-datascr-act">1</td>
               <td class="dr-dscr-inact rich-datascr-inact" onclick="Event.fire(this, ''''rich:datascroller:onscroll'''', {''''page'''': ''''2''''});">2</td>
               <td class="dr-dscr-inact rich-datascr-inact" onclick="Event.fire(this, ''''rich:datascroller:onscroll'''', {''''page'''': ''''3''''});">3</td>
               <td class="dr-dscr-inact rich-datascr-inact" onclick="Event.fire(this, ''''rich:datascroller:onscroll'''', {''''page'''': ''''4''''});">4</td>
               <td class=" dr-dscr-button rich-datascr-button" onclick="Event.fire(this, ''''rich:datascroller:onscroll'''', {''''page'''': ''''next''''});">
                  <img src="/nfse/resources/images/bt_proximo.gif">
               </td>
               <td class=" dr-dscr-button rich-datascr-button" onclick="Event.fire(this, ''''rich:datascroller:onscroll'''', {''''page'''': ''''last''''});">
                  <img src="/nfse/resources/images/bt_ultima_pagina.gif">
               </td>
            </tr>
         </tbody>
      </table>
      <script type="text/javascript">
         //<![CDATA[
         Event.observe(''''form:j_id162:dtRick'''', ''''rich:datascroller:onscroll'''',
         function(event){A4J.AJAX.Submit(''''_viewRoot'''',''''form'''',event,{''''ignoreDupResponses'''':true,''''implicitEventsQueue'''':''''form:j_id162:dtRick'''',''''similarityGroupingId'''':''''form:j_id162:dtRick'''',
         ''''parameters'''':{''''ajaxSingle'''':''''form:j_id162:dtRick'''',''''form:j_id162:dtRick'''':event.memo.page} ,''''actionUrl'''':''''/nfse/pages/security/consultaNFS-e_prestador.jsf''''} ); return false;});
         //]]>
      </script>
   </div>
</div>


Usei o código abaixo, mas sem sucesso pois clica apenas na tabela e não na célula:

var
  elemento: IHTMLElement; 
begin
 elemento := (WebBrowser1.document as IHTMLDocument3).getElementById(''''form:j_id162:dtRick_table'''');
       
 if Assigned(elemento) then
   elemento.click();
end;


Tentei executar o script da função anonima mas também sem sucesso:

elemento := (WebBrowser1.document as IHTMLDocument3).getElementById(''''form:j_id162:dtRick_table'''');
   if Assigned(elemento) then
      (WebBrowser1.document as IHTMLDocument2).parentWindow.execScript(''''Event.fire(this, ''''''''rich:datascroller:onscroll'''''''', {''''''''page'''''''': ''''''''next''''''''});'''', ''''javascript'''')
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar