我不熟悉代码。我试图在输入字段中插入文本,然后按ENTER按钮。
$I->fillField('#token-input-yw1', 'Some string');
$I->pressKey('#token-input-yw1', 13);
输入文本但未按下回车键。有什么想法吗?
答案 0 :(得分:8)
如果有人按Enter键仍然有问题,这是一个解决方案:(如果你使用带Selenium的Webdriver)
$I->pressKey('#input',WebDriverKeys::ENTER);
答案 1 :(得分:2)
希望有人会觉得这很有用。
参见 http://codeception.com/docs/modules/WebDriver#pressKey
pressKey
按下给定元素上的给定键。要指定字符和修饰符(例如 ctrl , alt , shift , meta ),请为{传递数组{1}}使用修饰符作为第一个元素,将字符作为第二个元素。对于特殊键,使用$char
类中的键常量。
WebDriverKeys
param
<?php // <input id="page" value="old" /> $I->pressKey('#page','a'); // => olda $I->pressKey('#page',array('ctrl','a'),'new'); //=> new $I->pressKey('#page',array('shift','111'),'1','x'); //=> old!!!1x $I->pressKey('descendant-or-self::*[ * `id='page']','u');` //=> oldu $I->pressKey('#name', array('ctrl', 'a'), \Facebook\WebDriver\WebDriverKeys::DELETE); //=>'' ?>
param
$element
可以是带有修饰符的char或数组。你可以提供 几个字符。抛出
$char
请注意,您可能需要在\Codeception\Exception\ElementNotFound
之前添加\
或\Facebook\WebDriver\
:
WebDriverKeys
答案 2 :(得分:0)
我遇到了同样的问题。我按这样输入:
$I->executeJS('event.keyCode=13');
$I->fillField('input onkeypress=','13');
$I->pressKey('photo_link', '13');
但它不起作用。
我用下一个代码修复了它:
$I->executeJS("$('input#photo_link').trigger(jQuery.Event('keypress', {keyCode: 13}));");
等于输入键,试一试。