Seite 1 von 1

Python Selenium wie ein Mensch schreiben? mit random string?

Verfasst: Mittwoch 14. September 2022, 07:40
von Yokozuna
Hallo,

Ich bin Anfänger von Python und arbeite im Moment mit Selenium. Ich weiß wie ich programmieren kann, dass Selenium wie ein Mensch schreibt. Allerdings weiß ich nur, wie ich meinen eigenen Text dafür verwenden kann. Ich weiß übrigens wie man einen random String macht, weiß jemand wie ich einstellen kann, dass Selenium wie ein Mensch schreibt, aber mit random Buchstaben? Der Code für das Menschliche schreiben ist darunter. Ich wäre sehr dankbar dafür.

falls jemand einen anderen Code hat, würde diesen auch gerne nehmen.

elem = driver.find_element(By.ID, 'signup-username')
text = ''test"
for character in text:
actions = ActionChains(driver)
actions.move_to_element(elem)
actions.click()
actions.send_keys(character)
print(character)
actions.perform()
time.sleep(random.uniform(0.2,0.5))

Re: Python Selenium wie ein Mensch schreiben? mit random string?

Verfasst: Mittwoch 14. September 2022, 08:34
von noisefloor
Hallo,

was heißt denn "wie ein Mensch schreiben" und "aber mit random Buchstaben?" Das macht in der Kombination doch keinen Sinn. Wenn ein Mensch schreibt sind es doch gerade _keine_ zufälligen Buchstaben, sondern die Buchstaben sind i.d.R. sinnvoll aneinandergereit, so dass ein Wort raus kommt und die Worte so sinnvoll aneinander gereit, dass der Satz einen Sinn ergibt (hoffentlich jedenfalls).

Was hast du denn vor? Einen next-level Spambot, der nicht so gruselig schreibt wie die Spambots, die einfach maschinelle, schlecht übersetzte Texte nutzen?

Gruß, noisefloor

Re: Python Selenium wie ein Mensch schreiben? mit random string?

Verfasst: Mittwoch 14. September 2022, 09:03
von Yokozuna
Hallo,

Muss nicht unbedingt mit random Buchstaben sein. Es wäre auch cool, wenn er z. B. Namen aus einem Text File nimmt und die wie ein Mensch eingibt.
Meine Frage wäre, wenn er die Namen in dem Fall nimmt, wie ich es so aussehen lassen könnte, als wenn das ein Mensch geschrieben hätte. Und um deine Frage zu beantworten, meine Intention dahinter ist ganz einfach, dass ich mich in Zukunft mit Python mehr auskennen will, da mich Python sehr interessiert. Deshalb möchte ich es wissen. Ich werde demnach auch mehrere Fragen im Forum stellen, wozu ich nichts Richtiges im Internet finde.


with open('test.txt') as f:
lines = f.readlines()
i = random.randrange(len(lines))
driver.find_element(By.ID, "test").send_keys(lines)

Grüße Yokozuna

Re: Python Selenium wie ein Mensch schreiben? mit random string?

Verfasst: Mittwoch 14. September 2022, 09:24
von Sirius3
Da Selenium ja für die Automatisierung gedacht ist, muß es nicht so aussehen, wie ein Mensch es tippen würde, schaut eh niemand zu. Und ein Mensch hat einen ziemlich gleichmäßigen Anschlag, wenn es um das Tippen seines Names geht.

Re: Python Selenium wie ein Mensch schreiben? mit random string?

Verfasst: Mittwoch 14. September 2022, 09:35
von Yokozuna
Sirius3 hat geschrieben: Mittwoch 14. September 2022, 09:24 Da Selenium ja für die Automatisierung gedacht ist, muß es nicht so aussehen, wie ein Mensch es tippen würde, schaut eh niemand zu. Und ein Mensch hat einen ziemlich gleichmäßigen Anschlag, wenn es um das Tippen seines Names geht.
Hallo,

Stimmt es muss nicht so aussehen, aber es wäre trotzdem ziemlich nice es auszuprobieren bzw. es zu wissen.

Re: Python Selenium wie ein Mensch schreiben? mit random string?

Verfasst: Mittwoch 14. September 2022, 10:14
von noisefloor
Hallo,

ich glaube, du hast da noch einen Denkfehler drin. Die Eingabe erfolgt im Browser - und dem ist egal, wie langsam (oder schnell) du tipps. Die Webseite bzw. der Webservice bekommt die fertige Eingabe und da ist es auch egal, ob die Eingabe 10s oder 0,1s gedauert hat - weil der Server nur den kompletten Text sieht.
Natürlich könnte es sein, dass es Formularfelder gibt, wo per JavaScript jeder Buchstabe "live" und einzeln an den Server übertragen wird und der Server die Schreibgeschwindigkeit misst (warum auch immer). Ist aber IMHO eher die Ausnahme bzw. es wäre schon eine relativ aufwendige Maßnahmen gegen Bots, die automatisiert Formulare ausfüllen-

Gruß, noisefloor

Re: Python Selenium wie ein Mensch schreiben? mit random string?

Verfasst: Mittwoch 14. September 2022, 10:41
von Yokozuna
noisefloor hat geschrieben: Mittwoch 14. September 2022, 10:14 Hallo,

ich glaube, du hast da noch einen Denkfehler drin. Die Eingabe erfolgt im Browser - und dem ist egal, wie langsam (oder schnell) du tipps. Die Webseite bzw. der Webservice bekommt die fertige Eingabe und da ist es auch egal, ob die Eingabe 10s oder 0,1s gedauert hat - weil der Server nur den kompletten Text sieht.
Natürlich könnte es sein, dass es Formularfelder gibt, wo per JavaScript jeder Buchstabe "live" und einzeln an den Server übertragen wird und der Server die Schreibgeschwindigkeit misst (warum auch immer). Ist aber IMHO eher die Ausnahme bzw. es wäre schon eine relativ aufwendige Maßnahmen gegen Bots, die automatisiert Formulare ausfüllen-

Gruß, noisefloor
Hallo,

Ja, im Endeffekt ist es nicht so wichtig, hast du recht, sieht halt nur cooler aus.
Aber ich hätte eine Frage an dich, ich habe noch eine 2te Frage im Forum erstellt, kurz zusammengefasst, Ich möchte, dass Selenium mein Profil bei Chrome nimmt, hättest du da eine Lösung?

Re: Python Selenium wie ein Mensch schreiben? mit random string?

Verfasst: Mittwoch 14. September 2022, 11:20
von __deets__
@noisefloor: das ist zu kurz gedacht. Ich kann mir sehrwohl vorstellen, dass man Texteingabe via Javascript als Signal fuer Bot-Detection benutzt.