Behat + mink + Selenium2获取当前浏览器名称

时间:2016-04-05 19:34:59

标签: php selenium selenium-grid behat mink

如何获取当前使用的浏览器名称?我正在使用Chrome和Firefox,我的功能测试在功能下进行 - >铬,功能 - > Firefox浏览器。我想在测试失败时截取屏幕截图,我可以生成屏幕截图,它只保存在我的root目录中。我希望文件保存在适当的浏览器下。做的时候

print_r($this->getSession()->getDriver())

我知道它有一个browserName的私有变量,但我如何访问它?

[browserName:Behat\Mink\Driver\Selenium2Driver:private] => chrome [desiredCapabilities:Behat\Mink\Driver\Selenium2Driver:private] => Array ( [browserName] => chrome [browser] => chrome [version] => 25 [platform] => ANY

3 个答案:

答案 0 :(得分:1)

这对我有用。

$session = $this->getSession();
$driver = $session->getDriver();
$userAgent = $driver->evaluateScript('return navigator.userAgent');
$provider = $driver->evaluateScript('return navigator.vendor');
$browser = null;
if (preg_match('/google/i', $provider)) {
    //using chrome
    $browser = 'chrome';
} elseif (preg_match('/firefox/i',$userAgent)) {
    $browser = 'firefox';
}

答案 1 :(得分:0)

你尝试过执行吗? driver.executeScript(“return navigator.userAgent;”)

并解析用户代理字符串以获取此信息? 这应该可以帮助您获取浏览器名称,版本,操作系统信息等,

答案 2 :(得分:0)

尝试一下

/**
 * Returns current browser name.
 *
 * @return string Browser name.
 */
function getBrowserName(): string
{
    return $this->getCapabilities()['browserName'];
}