我试过了:
$sel->type_keys_ok("//fieldset[2]/input", "KEYS");
没有结果。什么都没有改变。
也尝试过:
$sel->send_keys_ok("//fieldset[2]/input", "KEYS");
未实施。
也试过:
my $res = $sel->get_eval('
function simulateKeyEvent(character) {
var evt = document.createEvent("KeyboardEvent");
(evt.initKeyEvent || evt.initKeyboardEvent)("keypress", true, true, window,
0, 0, 0, 0,
0, character.charCodeAt(0))
var canceled = !body.dispatchEvent(evt);
if(canceled) {
// A handler called preventDefault
alert("canceled");
} else {
// None of the handlers called preventDefault
alert("not canceled");
}
};
simulateKeyEvent("K");' );
然后我得到了这个错误:'initKeyEvent'调用了一个没有实现接口KeyboardEvent的对象。感谢。
答案 0 :(得分:1)
版本1:
my $element = $sel->find_element("//input[\@name='q']");
$element->send_keys("KEYS");
$element->submit();
版本2使用WDKeys:
use Selenium::Remote::WDKeys;
my $element = $sel->find_element("//input[\@name='q']");
$element->send_keys("KEYS");
$sel->send_keys_to_active_element(KEYS->{'enter'});
有关详细信息,请查看CPAN Selenium::Remote::Driver