我知道使用 selenium RC,我曾经通过命令行运算符... -firefoxProfileTemplate 并且可以。现在使用 Selenium2 (Webdriver),这似乎不再起作用了。
由于我正在使用 PHPUnit 进行其他测试,因此我想继续使用它。任何人都知道如何为它定义一个自定义的 Firefox 配置文件?
我知道使用 selenium RC,我曾经通过命令行运算符... -firefoxProfileTemplate 并且可以。现在使用 Selenium2 (Webdriver),这似乎不再起作用了。
由于我正在使用 PHPUnit 进行其他测试,因此我想继续使用它。任何人都知道如何为它定义一个自定义的 Firefox 配置文件?
这并没有明确回答上面的问题,但是,它确实有助于解决眼前的问题,因为我的 selenium 设置只会使用 1 个 Firefox 实例,而不会尝试即时加载它们。
话虽如此,这将对那里的大多数用户有所帮助,因此我将其作为“答案”放在这里,而不是选择它作为正确答案的原因。
我在 github 上的 phpunit-selenium 问题队列中找到了答案。谢谢埃马克。
只需使用命令行选项加载您的 selenium 服务器
-Dwebdriver.firefox.profile=PROFILE_NAME
注意: PROFILE_NAME 是位于 Firefox 应用程序数据目录中的 profiles.ini 中的机器名称。这不是一条路径或什么不是。
假设您将php-webdriver与FirefoxDriver一起使用。并且您想使用特定的 Firefox 配置文件启动 FirefoxDriver。(用于在每次 selenium 运行时保持登录并保存您的登录名和 cookie)
首先,找到包含您的 Firefox 配置文件数据的目录。对我来说,在 Win 10 上它是 C:/Users/MyWinProfile/AppData/Roaming/Mozilla/Firefox/Profiles/pivdau5sa.selen
之后使用这样的代码打开firefox php-webdriver:
namespace Facebook\WebDriver;
use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\Remote\RemoteWebDriver;
use Facebook\WebDriver\Firefox\FirefoxDriver;
use Facebook\WebDriver\Firefox\FirefoxOptions;
require_once('vendor/autoload.php');
$firefoxOptions = new FirefoxOptions();
$firefoxOptions->addArguments(['-profile', 'C:/Users/<MyUserName>/AppData/Roaming/Mozilla/Firefox/Profiles/pivdau5sa.selen']);
$capabilities = DesiredCapabilities::firefox();
$capabilities->setCapability(FirefoxOptions::CAPABILITY, $firefoxOptions);
putenv('WEBDRIVER_FIREFOX_DRIVER=C:\PHP\geckodriver.exe'); // you may dont need this line
$driver = FirefoxDriver::start($capabilities);