2013-06-13 31 views
1

我对代码不熟悉。我试图在输入字段中插入文本并按下ENTER按钮。Codeception pressKey ENTER不起作用

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

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

回答

6

如果还有人有问题,按下回车键,这里是一个解决方案:(如果你正在使用的webdriver硒)

$I->pressKey('#input',WebDriverKeys::ENTER); 
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}));"); 

它等于回车键,试试吧。

2

希望有人会觉得这非常有用。

http://codeception.com/docs/modules/WebDriver#pressKey

pressKey

压力机给定元素在给定的关键。指定一个字符和改性剂(例如CTRLALT),通过用于$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); //=>'' 
?> 

param $element

param $char Can be char or array with modifier. You can provide several chars.

throws \Codeception\Exception\ElementNotFound

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

\Facebook\WebDriver\WebDriverKeys::ENTER

+0

在助手使用它,我需要添加'\'为'\ WebDriverKeys :: ENTER '。否则它会抛出一个错误'致命错误:Class'Codeception \ Module \ WebDriverKeys'not found' –