perl - ¿Cómo se configura el valor de un campo de entrada mediante un selector complejo?
browser-automation (2)
Cuando me encontré con este problema, solo usaría el método eval
y dejaría que Javascript (o jQuery, si está cargado en la página) se encargara de seleccionar y configurar los valores. Para mí, fue principalmente seleccionar los menús desplegables, donde la aplicación Angular en la página requería un cambio o un evento de clic .
$mech->eval( q{$(tr.edit td[data-attribute="name"] input).val(''test'')} );
Si no hay jQuery, estoy seguro de que Google Fu te ayudará.
- WWW::Mechanize::Chrome 0.10
- Iridium 2017.11 en una sesión de escritorio encabezada
Quiero establecer el valor de un determinado campo de entrada sin forma .
my $field = $w->selector(''tr.edit td[data-attribute="name"] input'', single => 1);
lo encuentra.
$field->attributes->{value} = ''test'';
No tiene efecto aparente.
Ambos
$w->field($field => ''test'');
y
$w->field(''tr.edit td[data-attribute="name"] input'' => ''test'');
error hacia fuera con No elements found for form number 1
.
Tal vez puedas usar algo como abajo
$w->driver->send_message(''DOM.setAttributeValue'', nodeId => 0+$field->nodeId, name => ''value'', value => "test" )->get
Referencia del código fuente real
metacpan.org/source/CORION/WWW-Mechanize-Chrome-0.10/lib/WWW/…