如何获取当前使用的浏览器名称?我正在使用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
答案 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'];
}