Select 在行为中没有 id 的表单输入

Select form input without id in behat

我需要编写一个自定义函数来使用唯一的电子邮件地址填充电子邮件输入字段。但是页面有动态生成的 ID,所以我不能只使用 $page->find() 来轻松获取元素。如何通过名称获取输入元素?

public function iFillInUniqueEmail($arg1)
{
    $page = $this->getSession()->getPage();

    $element = $page->find('css', $arg1);

    if (null === $element) {
      throw new InvalidArgumentException(sprintf('Could not evaluate CSS selector: "%s"', $arg1));
    }

    $date = date('YmdHis');
    $email = "test" . $date . "@test.com";

    $element->setValue($email);
}

您可以通过 name 属性查找元素,如下所示:

$el = $page->find('css', 'input[name="input_name_goes_here"]');