6

我不熟悉代码接收。我正在尝试在输入字段中插入文本并按 ENTER 按钮。

$I->fillField('#token-input-yw1', 'Some string');
$I->pressKey('#token-input-yw1', 13);

文本已输入,但未按下回车键。有任何想法吗?

4

3 回答 3

14

如果有人仍然无法按 Enter 键,这里有一个解决方案:(如果您使用带有 Selenium 的 Webdriver)

$I->pressKey('#input',WebDriverKeys::ENTER);
于 2014-10-09T12:46:22.680 回答
2

希望有人会发现这很有用。

请参阅http://codeception.com/docs/modules/WebDriver#pressKey

按键

在给定元素上按下给定键。要指定字符和修饰符(例如ctrl, alt, shift, meta),请传递一个数组 for $char,其中修饰符作为第一个元素,字符作为第二个元素。对于特殊键,请使用WebDriverKeys类中的键常量。

<?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); //=>''
?>

参数$element

param$char可以是带修饰符的字符或数组。您可以提供多个字符。

投掷\Codeception\Exception\ElementNotFound

请注意,您可能需要添加\or\Facebook\WebDriver\之前WebDriverKeys

\Facebook\WebDriver\WebDriverKeys::ENTER

于 2016-06-29T05:32:21.300 回答
1

我有同样的问题。我按这种方式输入:

$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}));");

等于回车键,试试看。

于 2013-09-04T15:49:15.913 回答