Mink:这些方法在哪里定义?

时间:2015-07-25 12:34:50

标签: php mink

我正在学习Mink,并希望找到一个API参考。我已经挖掘了Mink源代码以获得答案,但感到困惑。

文档提供了其使用示例:

$session->getPage()->hasContent("bla");
$session->getPage()->find('css', 'title')->getText();

但我在源头中找不到这些方法getPagegetTextfindhasContent。 (但它们似乎有用)。

Mink似乎充分利用了OOP模式,而且我显然不够明亮,无法弄清楚到底发生了什么! 任何人都可以给我一个API参考链接,或者帮助理解这些方法的定义?

例如,我一直在困惑为什么这不起作用:

$this->assertTrue($session->getPage()->find('css', 'title')->hasContent("Part of the page's Title"));

(我收到错误Call to undefined method Behat\Mink\Element\NodeElement::hasContent()

但我找不到一个名为NodeElement的玻璃杯,更不用说它有什么方法可供我使用。

3 个答案:

答案 0 :(得分:4)

好吧,从未使用过Mink,但源代码是在github:

来自https://github.com/minkphp/Mink/blob/master/src/Session.php

/**
 * Returns page element.
 *
 * @return DocumentElement
 */
public function getPage()
{
    return $this->page;
}

由于getPage()返回一个DocumentElement对象,因此您可以查看DocumentElement类:https://github.com/minkphp/Mink/blob/master/src/Element/DocumentElement.php

由于DocumentElement扩展了扩展Element的TraversibleElement,因此您最终会在Element中找到函数find()。这是IDE真正帮助您遍历代码库以查找所调用函数的实际位置的地方。

答案 1 :(得分:2)

我希望我指的是同一个貂皮。在github上查看源代码。

例如,对于getPage(),请参阅此内容 https://github.com/minkphp/Mink/blob/master/src/Session.php

答案 2 :(得分:2)

首先,您应该从FeatureContext扩展您的MinkContext课程。 MinkContext有许多有用的断言方法和方法,可以处理页面元素。 F.e。

$this-> assertElementContains('CSS_IDENTIFIER_EXAMPLE', 'Some text');

$this->fillField($field, $value);

使用指定的id | name | label |值填写表单字段。

可用方法的完整列表检查GitHub MinkContext

这里还有一个behat cheat sheet,它显示了使用html元素的基本信息和方法。