使用 Selenium Facebook PHP Webdriver 在 chrome 中打开新标签

Open new tab in chrome using Selenium Facebook PHP Webdriver

所以基本的技巧,"I am new to this thing" 使用 Facebook 的 PHP Webdriver (https://github.com/facebook/php-webdriver) 调用了 Selenium,我找不到任何匹配 "How to open a new tab in chrome" 使用这种特殊技术的东西。任何帮助将不胜感激。

给你一杯虚拟咖啡,善良的程序员!

像这样的东西应该可以工作:

$driver = RemoteWebDriver::create($host, DesiredCapabilities::chrome());
$driver->get('http://mine.com');

// Via driver: http://facebook.github.io/php-webdriver/classes/RemoteWebDriver.html#property_keyboard

$kbd = $driver->getKeyboard();
$kbd->sendKeys(WebDriverKeys.CONTROL,'t');

// Via an element: http://facebook.github.io/php-webdriver/classes/WebDriverElement.html#method_sendKeys

$element = $driver->findElement(WebDriverBy::id('somethingOnScreen'));
$element->sendKeys(WebDriverKeys.CONTROL,'t');
$driver->getKeyboard()->sendKeys(
  array(WebDriverKeys::CONTROL, 't'),
);

您可以使用 JS 解决方案,例如:

$webdriver->executeScript("window.open('". $url ."','_blank');", array());

自 php-webdriver 1.10.0 以来的新方法:

// Default behavior, without specifying window type
$driver->switchTo()->newWindow();

// Open new window
$driver->switchTo()->newWindow(WebDriverTargetLocator::WINDOW_TYPE_WINDOW);
// Open new tab
$driver->switchTo()->newWindow(WebDriverTargetLocator::WINDOW_TYPE_TAB);

$driver->switchTo()->window($driver->getWindowHandles()[1]);

有关更多示例,请参阅 doucmentation