【问题标题】:Open new tab in chrome using Selenium Facebook PHP Webdriver使用 Selenium Facebook PHP Webdriver 在 chrome 中打开新标签
【发布时间】:2021-05-23 06:30:58
【问题描述】:

因此,使用 Facebook 的 PHP Webdriver (https://github.com/facebook/php-webdriver) 调用 Selenium 的基本语言“我对这个东西很陌生”,我找不到任何与“如何在 chrome 中打开新标签”相匹配的内容。任何帮助将不胜感激。

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

【问题讨论】:

    标签: php selenium selenium-webdriver selenium-chromedriver


    【解决方案1】:

    自 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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 其实这是唯一适合我的答案
      【解决方案3】:

      这样的事情应该可以工作:

      $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');
      

      【讨论】:

      • 感谢您的回答,但不,它没有用。仍然打开一个新窗口,而不是一个新标签。我有这些:$host = 'http://localhost:4444/wd/hub'; $driver = RemoteWebDriver::create($host, DesiredCapabilities::chrome()); $driver->get($url); $kbd = $driver->getKeyboard(); $kbd->sendKeys(WebDriverKeys.CONTROL,'t'); $uname = $driver->findElement( WebDriverBy::xpath('/html/body/div[5]/div/div[1]/div[2]/div/form/input[1]') );
      • 澄清一下:get 调用创建了一个窗口,Ctrl-T 创建了另一个窗口(即它肯定会做某事)?
      • 我需要检查您所看到的内容,因为人们普遍认为 Ctrl-T(或 Mac 的 Cmd-T)将 - 如果它完全有效 - 打开一个新选项卡,请参阅:@ 987654321@
      • 嘿,又是@Andrew。即使省略 sendkeys 部分也会打开新窗口。但是,打开一个新标签根本不起作用。是的,我已经阅读了您昨天指出的消息来源。无论如何,感谢您的帮助,非常感谢!
      • 我的实际问题是我有这个客户端-服务器设置,当我从客户端启动自动化站点时,新窗口会在服务器而不是客户端打开。你对这些有什么建议吗?我试图理解硒网格。我在正确的轨道上吗?
      【解决方案4】:
      $driver->getKeyboard()->sendKeys(
        array(WebDriverKeys::CONTROL, 't'),
      );
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-03-13
        • 1970-01-01
        • 2011-09-19
        • 2016-05-14
        • 1970-01-01
        • 2018-01-04
        • 1970-01-01
        • 2020-04-09
        相关资源
        最近更新 更多