Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Localizar campos dentro do Frame no Embedded/TWebBrowser


LuloNet

Pergunta

Olá pessoal.

Gostaria de localizar e informar dados para um campo dentro de um Frame numa pagina e depois cliclar no botão abaixo do mesmo.

O Campo será informado MMAAAA (Mês/Ano),

e no Botão Continuar será dado o clique.

Segue o exemplo do frame e html abaixo:

<html xmlsn='"http//www.w3.org/1999/xhtml">

<head>

<body style="">

<div style="display: nome;">

<div id="container">

<div id="logo"> ...

<div id="menu"> ...

<div id="areatrabalho">

<div id="pFrameEmpresa" class="pFrame">

<div id="pFramePA" class="pFrame">

<div class="pFrameTitulo">Informe o Período de Apuração (MMAAAA) </div>

<div class="pFrameConteudo">

<input class="pa" type="text"> OBS: Este é o campo que recebe os dados MMAAAA, como informo os mesmos?

</div>

<div class="pFrameButtom">

<a class="pButtom" href="#">Continuar </a> OBS: Este é o botão onde tenho que simular o clique.

</div>

</div>

</div>

<div id="caminho"> ...

</div>

</body>

</html>

Desde já agradeço pela ajuda e pelas dicas, URGENTE.

3.6 É proibida a abertura de tópicos com títulos como "Socorro", "Ajuda", "Urgente", etc, ou com títulos que não descrevam a dúvida, como "Uma dúvida simples", "Alguém pode me ajudar?", "Dúvida de Iniciante", etc. Tópicos assim serão editados sem aviso prévio.
Editado por Jhonas
Regras do forum
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Caro amigo Jhonas, fiz uma pesquisa pelo link como foi solicitado.

Testei o progrma abaixo:

procedure SetFieldValue(theForm: IHTMLFormElement;

const fieldName: string; const newValue: string;

const instance: integer=0);

var

field: IHTMLElement;

inputField: IHTMLInputElement;

selectField: IHTMLSelectElement;

textField: IHTMLTextAreaElement;

begin

field := theForm.Item(fieldName,instance) as IHTMLElement;

if Assigned(field) then

begin

if field.tagName = 'INPUT' then

begin

inputField := field as IHTMLInputElement;

if (inputField.type_ <> 'radio') and

(inputField.type_ <> 'checkbox')

then

inputField.value := newValue

else

inputField.checked := (newValue = 'checked');

end

else if field.tagName = 'SELECT' then

begin

selectField := field as IHTMLSelectElement;

selectField.value := newValue;

end

else if field.tagName = 'TEXTAREA' then

begin

textField := field as IHTMLTextAreaElement;

textField.value := newValue;

end;

end;

end;

procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;

const pDisp: IDispatch; var URL: OleVariant);

var

document : IHTMLDocument2;

theForm : IHTMLFormElement;

begin

try

document := WebBrowser1.Document as IHTMLDocument2;

theForm := GetFormByNumber(document,0);

SetFieldValue(theForm,'pa', '032010'); //--- Onde pa é o campo e o 032010 o seu valor.

theForm.submit;

except

end;

end;

Não funcionou, o que deve estar errado neste código?

PS. Obrigado pela ajuda.

Link para o comentário
Compartilhar em outros sites

  • 0

Amigo Jhonas.

Gostaria de pedir para você se pudesse ne explicar melhor (com mais detalhes) como usa a rotina abaixo:

procedure SetFieldValue(theForm: IHTMLFormElement;

const fieldName: string; const newValue: string;

const instance: integer=0);

var

field: IHTMLElement;

inputField: IHTMLInputElement;

selectField: IHTMLSelectElement;

textField: IHTMLTextAreaElement;

begin

field := theForm.Item(fieldName,instance) as IHTMLElement; //---> Quando rodo da erro aqui <--- //

if Assigned(field) then

begin

if field.tagName = 'INPUT' then

begin

inputField := field as IHTMLInputElement;

if (inputField.type_ <> 'radio') and

(inputField.type_ <> 'checkbox')

then

inputField.value := newValue

else

inputField.checked := (newValue = 'checked');

end

else if field.tagName = 'SELECT' then

begin

selectField := field as IHTMLSelectElement;

selectField.value := newValue;

end

else if field.tagName = 'TEXTAREA' then

begin

textField := field as IHTMLTextAreaElement;

textField.value := newValue;

end;

end;

end;

para poder implementar no meu programa, desde já muito obrigado pela atenção e pelas dicas.

Abraço.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...