我需要为我的测试声明一个页面标题,这是使用Behat + Mink的标签/窗口标题
我试过getWindowName()但意识到不是我正在寻找的功能。如何在Behat + Mink中断言页面/标签/窗口标题
0
A
回答
2
您应该使用css定期查找标题标记并使用getText()来获取标题。
CSS的应该是:“头题”
您的解决方案几乎是好的,你需要注意的可能是个例外,尤其是致命的,如果遇到可以阻止您的套房。
例如find()
方法会返回一个对象或null
,如果返回null
和你在予以使用getText()
它会导致致命异常和您的套房将停止。
略有改善方法:
/**
* @Given /^the page title should be "([^"]*)"$/
*/
public function thePageTitleShouldBe($expectedTitle)
{
$titleElement = $this->getSession()->getPage()->find('css', 'head title');
if ($titleElement === null) {
throw new Exception('Page title element was not found!');
} else {
$title = $titleElement->getText();
if ($expectedTitle !== $title) {
throw new Exception("Incorrect title! Expected:$expectedTitle | Actual:$title ");
}
}
}
改进:
- 处理可能致命异常
- 抛出异常,如果没有找到元素
- 抛出异常与细节,如果标题不匹配
请注意,您也可以使用其他方法来检查标题,如:stripos
,strpos
或简单地比较字符串,就像我一样。我更喜欢简单的比较,如果我需要确切的文本或strpos/stripos方法的个人,避免定期异常和像preg_match相关的方法,通常会慢一点。
你可以做的一个主要改进是有一个等待元素并为你处理异常的方法,并用它来代替简单的查找,当你需要根据元素的存在性来决定时,可以使用它像︰如果存在的元素做这个别的..
0
谢谢劳达。是的,这确实有效。写下以下功能:
/**
* @Given /^the page title should be "([^"]*)"$/
*/
public function thePageTitleShouldBe($arg1)
{
$actTitle = $this->getSession()->getPage()->find('css','head title')->getText();
if (!preg_match($arg1, $actTitle)) {
throw new Exception ('Incorrect title');
}
}
相关问题
- 1. behat/mink打开窗口并截取它的屏幕截图
- 2. 如何在点击标签页时更改页面标题?
- 3. OrchardCMS,如何将HTML标题标签设置为页面标题
- 4. 如何使用behat检查标题标签的内容?
- 5. 在X11中,如何在创建窗口标题之前设置窗口标题?
- 6. 如何使用PHP behat/mink selenium2 chrome webdriver
- 7. Symfony2 + Behat + Mink:我应该如何重构?
- 8. Sharepoint链接 - 如何在新标签页/窗口中打开
- 9. 打开一个新页面:新窗口与新标签页
- 10. 如何使用Selenium Java在两个浏览器标签页/窗口之间获得活动窗口标题
- 11. 目标_blank不在新标签页/窗口中打开
- 12. 无法使用Selenium 3.5.x查找Behat/Mink的页面元素
- 13. 标签导航标题中的窗口:问题
- 14. 如何更改标签面板标题(标题)和面板标题在extjs4
- 15. 在新标签/窗口
- 16. 标签面板中的标签页
- 17. 在新标签页/窗口中打开JavaScript书签吗?
- 18. 为什么窗口/标签的标题和图标不更新?
- 19. Tkinter:如何居中窗口标题
- 20. 链接何时应该在新标签页/窗口中打开?
- 21. 如何链接到Titanium Mobile中没有标签的页面/窗口?
- 22. Flex:如何在关闭标题窗口后将标题窗口中的值传递给主窗口?
- 23. WPF窗口标题中的上标
- 24. 如何填写窗口EXIF标签
- 25. 如何在Behat + Mink中使用我的课程?
- 26. 如何在Symfony 2中使用Behat和Mink测试REST API
- 27. window.open在新标签中打开页面而不是在弹出窗口中
- 28. 无法html页面的总窗口加载到帧标签
- 29. 将窗口页面和标签重定向到外部网站
- 30. 如何更改页面标题而不更改标签栏项目的标题?