您知道如何从Behat / Mink / Element / NodeElement检索输入类型文件名吗?
我有一个简单的测试html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
<form method="post" enctype="multipart/form-data">
<input type="file" name="file" id="file"/><br/>
</form>
</body>
</html>
假设我附加了一个名为 goodCoverArt.jpg 的文件,我可以使用chrome控制台中的以下命令检索它的文件名:
$x('//input[@type="file"]')[0].files[0].name
"goodCoverArt.jpg"
但是如果我在上下文类中使用以下函数:
// Search for that file name label in the page to confirm the execution of the file attachment.
$uploadElement = $this->getElementWhenVisible('xpath', "//div[@id='filename' and contains(.,'$fileName')]");
/**
* @param string $selector xpath|css|...
* @param string $locator link id, title, text or image alt
* @param int $tries
*
* @return NodeElement|mixed|null $element
*/
public function getElementWhenVisible($selector, $locator, $tries = 100)
{
$element = null;
$this->spin(
function () use ($selector, $locator, &$element) {
$element = $this->find($selector, $locator);
if(!($element instanceof NodeElement) || !$element->isVisible())
{
throw new Exception("Element not visible: $selector $locator");
}
}, $tries);
return $element;
}
如何从 $ uploadElement 中检索相同的信息?
答案 0 :(得分:0)
显然我找到了答案: 拥有 Behat / Mink / Element / NodeElement 可以调用 getValue ,如下所示:
$fileName = $uploadElement->getValue();
echo $fileName; // This will print string: goodCoverArt.jpg
将返回附件名 goodCoverArt.jpg