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

Problema com Click


Gabriel10101

Pergunta

Fala galera to com um probleminha aqui,não consigo fazer o WebBrowser clicar em uma certa checkbox.

Já tentei fazer todos os métodos que conhecia e nenhum funciono...Estou usando delphi 7

Pagina:

<div class="agreement">
      <div class="checkbox-small error">
        <div class="checkbox-v checked" style="display: none;"></div>
        <input type="checkbox" name="agreement">
Editado por Gabriel10101
Link para o comentário
Compartilhar em outros sites

15 respostass a esta questão

Posts Recomendados

  • 0

Não posso dar ctrl + u no momento que aparece a mensagem porém creio que seja dessa fuction pois a mensagem é parecida...

function cardReturned(){ 
if(ajaxRequest.readyState == 4){
if(ajaxRequest.responseText == "Win"){
document.form1.action = "donate3.php?c=";
document.form1.submit();
return false;
}else{
document.getElementById("theImage").style.display = "none";
alert(ajaxRequest.responseText + ".  Please fix the information and try again. If you think this is in error, please contact the Food Bank of Lincoln at 402-466-8170.");
return false;
}
}
}
 

function openWin(whatPage){
window.open(whatPage, "Help", "width=450, height=375, resizable=0, status=0, dependent=1");
}
Editado por Gabriel10101
Link para o comentário
Compartilhar em outros sites

  • 0

tente esse exemplo

uses ...OleCtrls, SHDocVw, MSHTML;

procedure TForm1.FormCreate(Sender: TObject);
var Url, Flags, TargetFrameName, PostData, Headers: OleVariant;
begin
Url := ExtractFilePath(Application.ExeName) + 'Test.htm';
WebBrowser1.Navigate2(Url, Flags, TargetFrameName, PostData, Headers);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
doc: IHtmlDocument2;
i: integer;
ov: OleVariant;
disp: IDispatch;
collection: IHTMLElementCollection;
inputelement: HTMLInputImage;
begin
WebBrowser1.ControlInterface.Document.QueryInterface(IHtmlDocument2, doc);
if not Assigned(doc) then
begin
Exit;
end;
ov := 'INPUT';
disp := doc.all.tags(ov);
if Assigned(disp) then
begin
disp.QueryInterface(IHTMLElementCollection, collection);
if Assigned(collection) then
begin
for i := 1 to collection.Get_length do
begin
disp := collection.item(pred(i), 0);
disp.QueryInterface(HTMLInputImage, inputelement);
if Assigned(inputelement) then
begin
if inputelement.Name = 'submit then
begin
inputelement.Click;
end;
end;
end;
end;
end;
end;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Valeu Jhonas,e venho com uma outra dúvida agora (ta virando rotina já) kkk

<a data-id="endereco_cadastrar" href="" title="Cadastrar um novo endereço" class="bt btCadastrar">Cadastrar um novo endereço</a>
<input type="submit" data-id="endereco_cadastro_salvar" value="Continuar" class="bt btContinuar">

Não consigo fazer ele clicar nesses 2 botões,pode me ajudar? Já tentei:

 Elements := WebBrowser1.OleObject.Document.forms.item(0).elements;
  for i := 0 to (Elements.Length - 1) do
    begin
 
       if (Elements.item(i).tagName = 'INPUT') and
          (Elements.item(i).type = 'submit') and
          (Elements.item(i).Value = 'Continuar') then
           Elements.item(i).Click;
    end;
Editado por Gabriel10101
Link para o comentário
Compartilhar em outros sites

  • 0
Elements := WebBrowser1.OleObject.Document.forms.item(0).elements;
  for i := 0 to (Elements.Length - 1) do
    begin
 
       if (Elements.item(i).tagName = 'INPUT') and  
          (Elements.item(i).type = 'submit') and 
          (Elements.item(i).Value = 'Continuar') then
           Elements.item(i).Click;
    end;

OBS: quanto ao type e o Value estão corretos

mas veja se o tagName é realmente INPUT ou outro nome ( ver tambem diferença entre maiuscula e minuscula )

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Está certo,já tentei colocar exatamente igual e não clica..Olha as linhas acima:

<p class="grp bts">
            <input type="button" data-id="endereco_cadastro_cancelar" value="Cancelar" class="bt btCancelar">
            <input type="submit" data-id="endereco_cadastro_salvar" value="Continuar" class="bt btContinuar">
        </p>
Link para o comentário
Compartilhar em outros sites

  • 0

faça isso para saber o conteudo do elemento

Elements := WebBrowser1.OleObject.Document.forms.item(0).elements;
  for i := 0 to (Elements.Length - 1) do
    begin

       showmessa(Elements.item(i).tagName );
       showmessa(Elements.item(i).type );
       showmessa(Elements.item(i).Value);
    end;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Deu certo sim,ultima dúvida prometo kk

Codigo:

if not Continuar then
break;

[Error] Unit1.pas(232): BREAK or CONTINUE outside of loop

Não entendi porque ta dando esse erro,a variável "continuar" muda para falsa caso o cliente pressione botão PARAR.

Editado por Gabriel10101
Link para o comentário
Compartilhar em outros sites

  • 0

exemplo

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  continuar : integer = 1;
  y : integer = 1;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
label voltar;
var
  x: integer;
begin

  for x := 1 to 20 do
  begin

    Memo1.Lines.Add(inttostr(x));
    sleep(500);

    Application.ProcessMessages;

    if continuar = 0 then
       break;

    voltar:
        continue;

  end;

  if application.MessageBox('continuar o loop', '', MB_YESNO) = id_Yes then
     begin
        if continuar = 0 then
           begin
              continuar := 1;
              goto voltar;
           end;
    end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
   inc(y);
   if y = 1 then
      continuar := 1
   else
      begin
         continuar := 0;
         y := 1;
      end;
   Application.ProcessMessages;
end;

end.

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,2k
    • Posts
      651,9k
×
×
  • Criar Novo...