我有一个behat测试,点击一个通常在新标签页中打开网址的按钮。
我可以测试单击按钮后是否打开了新选项卡?
这是小黄瓜:
Scenario: Open document in a new tab
Given I am a "Project Admin" for project "x"
And Project "x" has document type "orbitron" with editor "none"
And I create a new orbeon form "orbitron" for project "x" from fixture "OrbitronFilePicker.xhtml"
Then I visit the orbeon new content form for document type "orbitron" in project "x"
And I can see the "file-picker" control
When I enter a valid file picker reference "urn:isite:x:mickeyMouse"
Then I can see the card with "mickeyMouse" header
When I click "Open In New Tab" in the Dropdown Action Menu for "#section-1-control≡xf-383"
Then The document should open in a new tab
答案 0 :(得分:3)
您可以尝试这样的事情:
/**
* @When /^The document should open in a new tab$/
*/
public function documentShouldOpenInNewTab()
{
$session = $this->getSession();
$windowNames = $session->getWindowNames();
if(sizeof($windowNames) < 2){
throw new \ErrorException("Expected to see at least 2 windows opened");
}
//You can even switch to that window
$session->switchToWindow($windowNames[1]);
}
注意:可能会有一些延迟打开窗口,在这种情况下你需要等待它:
$ttw = 40;
while ((sizeof($session->getWindowNames()) < 2 && $ttw > 0) == true) {
$session->wait(1000);
$ttw--;
}