AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Auf HTML Seite Feld ausfüllen
Thema durchsuchen
Ansicht
Themen-Optionen

Auf HTML Seite Feld ausfüllen

Ein Thema von DelTurbo · begonnen am 18. Okt 2024 · letzter Beitrag vom 20. Okt 2024
Antwort Antwort
Seite 1 von 2  1 2      
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#1

Auf HTML Seite Feld ausfüllen

  Alt 18. Okt 2024, 14:14
Hi,
ich möchte auf einer HTML-Seite ein Feld ausfüllen und auf die Lupe klicken. Natürlich per Software. Bei einer "normalen" Form weiß ich wie das geht. Aber das hier bringt mich um das bissll verstand was ich noch habe. Es sieht wie folgt aus...

Code:
<div data-v-3f9000bc="" data-v-68db1b7e="" class="search-bar"><div data-v-3f9000bc="" class="search-textbox"><input data-v-3f9000bc="" type="text" placeholder="Wonach suchen Sie?"><button data-v-3f9000bc=""><svg data-v-3f9000bc="" class="svg-inline--fa fa-search fa-w-16" aria-hidden="true" focusable="false" data-prefix="far" data-icon="search" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path class="" fill="currentColor" d="DATEN"></path></svg></button></div><!----></div>
Es gibt in dem ganzen HTML Source keine <form>. Ich hoffe jemand weiß wie ich Text "eingeben" kann und suchen lassen kann.

Vielen Dank im voraus

PS.: Ich habe eine mitm Attacke gemacht und weiß nun was er aufruft. Trotzdem würde es mich noch interessieren.
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!

Geändert von DelTurbo (18. Okt 2024 um 14:30 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.639 Beiträge
 
#2

AW: Auf HTML Seite Feld ausfüllen

  Alt 18. Okt 2024, 14:50
Das <input type="text" /> ist das Eingabefeld, und der <button /> wird wohl die Suche auslösen.

Du kannst also mittels JavaScript die Elemente finden.
Zum Beispiel das Eingabefeld:

Code:
const inputField = document.querySelector('input[placeholder="Wonach suchen Sie?"]');
Hier suchen wir nach einem Input-Feld mit dem Placeholder-Text. Wir haben ja sonst keinen Anhaltspunkt.
Der <button> liegt im gleichen Div wie auch das Eingabefeld, also können wir uns dann von dort aus weiterhangeln.

Code:
const button = inputField.parentElement.querySelector('button');
Eingeben und suchen kannst Du dann folgendermassen:

Code:
inputField.value = 'suchtext';
button.click();
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#3

AW: Auf HTML Seite Feld ausfüllen

  Alt 18. Okt 2024, 15:21
Erstmal danke. Aber nun bin ich verwirrt. Ich habe mittlerweile WebView4Delphi und CEF4 Probiert.

Ich weiß wie ich damit die Seite laden kann. Das ist immer die gleiche Seite. Also suchen werde ich nicht müssen.

Nun zu meiner Frage: Kannst du mir eventuell die 2 Zeilen als Pascal Quelltext schreiben? Entweder mit WebView4Delphi oder CEF4 (bitte bei schreiben was du genommen hast).

Vielen Dank
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.053 Beiträge
 
Delphi 12 Athens
 
#4

AW: Auf HTML Seite Feld ausfüllen

  Alt 18. Okt 2024, 16:27
@Phoenix
const?
[edit] Achso, im JavaScript, nicht im Delphi. (dort ist sowas Grauenhaftes Eigenartiges ja normal) [/edit]

"Suchen" meint, dass du dir die Instanz dieses Elements im DOM besorgst (nicht die Definition im XML-Text)
und damit kannst du dann was machen.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (18. Okt 2024 um 16:31 Uhr)
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#5

AW: Auf HTML Seite Feld ausfüllen

  Alt 19. Okt 2024, 10:05
Achso, nun hab ich kapiert. Manchmal hab ich ne lange Leitung.
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#6

AW: Auf HTML Seite Feld ausfüllen

  Alt 19. Okt 2024, 12:09
Leider klappt der "click" nicht. Ich mache das mit WebView2Delphi. Hier das was ich mache. Im Suchfeld kann man "Sony" sehen.

Delphi-Quellcode:
    WVBrowser.ExecuteScript('const inputField = document.querySelector(''input[placeholder="Wonach suchen Sie? (Tipp: Suche mit englischen Begriffen)"]'');');
    WVBrowser.ExecuteScript('const button = inputField.parentElement.querySelector(''button'');');
    WVBrowser.ExecuteScript('inputField.value = ''Sony'';');
    WVBrowser.ExecuteScript('button.click();');
Nachtrag: Trage ich von Hand Samsung ein, dann klappt der click. Lasse ich das Script durch laufen kann ich nicht mal mehr per Hand klicken.
Der Testablauf: Seite kommt. Ich klicke auf einen Button der den Code oben ausführt. Dann kann ich nicht mehr auf den button klicken. Änder ich den Test von Hand und lasse das Skript wieder laufen klappt der klick. Er trägt zwar wieder Sony ein, aber gesucht wird nach dem Wort was ich eingetippt habe.
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!

Geändert von DelTurbo (19. Okt 2024 um 12:16 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
741 Beiträge
 
#7

AW: Auf HTML Seite Feld ausfüllen

  Alt 19. Okt 2024, 12:29
Ist die Seite auch zuvor vollständig geladen?

Der Button hat kein onClick oder Ähnliches. Da gibt es im Hintergrund bestimmt noch etwas Javascript für.
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#8

AW: Auf HTML Seite Feld ausfüllen

  Alt 19. Okt 2024, 12:33
Jop, die Seite ist komplett geladen. Deswegen habe ich mich erstmal dafür entschieden selber das Script zu starten. Trage ich z.b. Samsung ein und Starte dann das Script, dann steht dort wieder Sony, aber der klickt geht. Allerdings sucht er dann nach Samsung. Nicht nach dem was im Suchfeld steht.
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
741 Beiträge
 
#9

AW: Auf HTML Seite Feld ausfüllen

  Alt 19. Okt 2024, 13:01
Dann würde ich das mal in zwei Schritten machen: Zuerst den Text setzen und in einem zweiten Befehl den Button drücken.

Edit: Du scheinst es ja schon in 4 Befehlen zu machen!?
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
741 Beiträge
 
#10

AW: Auf HTML Seite Feld ausfüllen

  Alt 19. Okt 2024, 13:04
geht das?

Code:
    WVBrowser.ExecuteScript('var inputField = document.querySelector(''input[placeholder="Wonach suchen Sie? (Tipp: Suche mit englischen Begriffen)"]'');');
    WVBrowser.ExecuteScript('inputField.value = ''Sony'';');
    WVBrowser.ExecuteScript('var inputField = document.querySelector(''input[value="Sony"]'');');
    WVBrowser.ExecuteScript('var button = inputField.parentElement.querySelector(''button'');');
    WVBrowser.ExecuteScript('button.click();');

Geändert von Olli73 (19. Okt 2024 um 13:06 Uhr) Grund: Code editiert
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz