Thread Selenium: mit execute_script ein Event auslösen (0 answers)
Opened by roli at 2015-10-28 13:08

roli
 2015-10-28 13:08
#182723 #182723
User since
2004-12-31
424 articles
BenutzerIn
[default_avatar]
Hallo zusammen,

nachdem ich jetzt viel im Netz gesucht habe, aber nichts geholfen hat, frage ich mal wieder hier.
ich habe folgendes Input Element:
Code: (dl )
<input type="text" onblur="h127(this);" onfocus="h7(this);" onkeydown="h142(event);" onchange="h3();" cid="96" id="e227" maxlength="13" "="" value="0.0" tabindex="334">

Hier muß ich einen neuen Wert hineinschreiben. Mit send_keys habe ich schon sehr viel ausprobiert. Jetzt möchte ich das ganze gerne mal anders angehen.
Code (perl): (dl )
1
2
3
4
5
my $script = q{
    arguments[0].setAttribute(arguments[1], arguments[2]);
};

$main::driver->execute_script($script, $element, $attribut, $wert);

Damit kann ich zuverlässig neue Werte schreiben. Das $element auf ein falsches Element zeigt kann ich ausschließen, da ich auf dem Bildschim den neuen Wert aus $wert sehe. Jetzt fehlt "nur" noch das auslösen des Events, was mir einfach nicht gelingen will. Folgenden JS-Code habe ich, einzeln und nacheinander, versucht via execute_script auszuführen:
Code: (dl )
1
2
3
4
5
6
7
document.dispatchEvent(arguments[0]);
document.arguments[0].onchange();
arguments[0].onchange();
arguments[0].fireEvent(arguments[1]);
arguments[0].trigger('change');
arguments[0].dispatchEvent("onchange");
arguments[0].setAttribute('onchange', 'changeitem(this)');

Je nachdem was davon ich ausprobiere, erhalte ich andere Fehlermeldungen, oder wie z.B. bei "arguments[0].setAttribute('onchange', 'changeitem(this)');" einfach nichts.

Danke

<update>14:50 Frage jetzt auch auf Stackoverflow</update>
Last edited: 2015-10-28 14:50:44 +0100 (CET)
Roland
--
"Steh vorn, während du fragst;
sitzen soll, wer antwortet."
Aus "Die Edda des Snorri Sturluson" "Gylfis Täuschung" Strophe 2

View full thread Selenium: mit execute_script ein Event auslösen