【问题标题】:Codeception pressKey ENTER does not workCodeception pressKey ENTER 不起作用
【发布时间】:2013-06-09 13:03:36
【问题描述】:

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

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

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

【问题讨论】:

    标签: webdriver selenium-webdriver enter codeception


    【解决方案1】:

    希望有人会觉得这很有用。

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

    按键

    在给定元素上按给定键。要指定字符和修饰符(例如 ctrlaltshiftmeta),请为 @ 传递一个数组987654322@ 修饰符作为第一个元素,字符作为第二个元素。对于特殊键,请使用 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

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

    \Facebook\WebDriver\WebDriverKeys::ENTER

    【讨论】:

    • 在助手中使用它,我需要添加\ ,就像\WebDriverKeys::ENTER一样。否则会抛出错误Fatal error: Class 'Codeception\Module\WebDriverKeys' not found
    【解决方案2】:

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

    $I->pressKey('#input',WebDriverKeys::ENTER);
    

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题。我按这种方式输入:

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

      相当于回车键,试试看。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-06-12
        • 2023-03-27
        • 2019-04-29
        • 2010-12-08
        • 2017-08-18
        • 2018-04-26
        • 1970-01-01
        相关资源
        最近更新 更多