我正在学习Mink,并希望找到一个API参考。我已经挖掘了Mink源代码以获得答案,但感到困惑。
文档提供了其使用示例:
$session->getPage()->hasContent("bla");
$session->getPage()->find('css', 'title')->getText();
但我在源头中找不到这些方法getPage
,getText
,find
,hasContent
。 (但它们似乎有用)。
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
的玻璃杯,更不用说它有什么方法可供我使用。
答案 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元素的基本信息和方法。