如何使用PHP绑定设置Selenium(WebDriver和Server)


How to setup Selenium (WebDriver and Server) with PHP bindings

我正在尝试查找有关如何在"客户端-服务器"类型的设置中使用PHP绑定设置Selenium的特定信息。我甚至不确定我想要的是否可行,但我会尽力描述我想要实现的目标。

我在一个 Web 开发项目中做 QA,我们正在与分布式团队成员一起工作。我们需要自动化的前端测试,并且已经决定(由于许多因素)Selenium是这项工作的最佳人选。我们的团队专门研究PHP,因此将Selenium与PHP绑定一起使用是有意义的。

我最大的挑战是:

1) 如何安装这些 PHP 绑定?

2) 如何在PHP中创建和执行Selenium脚本?这似乎很明显,但我需要知道我是否需要在 PHP 中创建某种"项目",或者这是否需要不同的步骤。当涉及到默认的 JAVA 绑定时,手册非常清晰和详细,但无可救药地缺乏 PHP 绑定。

3) 我该如何完成所有这些操作,同时想要从客户端调用测试,但由"服务器/VM"执行它?(请记住,如果存在可能性,我还希望能够在服务器上创建测试,该测试可以在客户端桌面上执行/调用测试活动。

4) 如何设置满足所有要求的服务器,以运行带有PHP绑定的Selenium服务器?

目标是能够最初创建一个虚拟机(可能是一个Vagrant盒子),其中包含Selenium服务器(如果需要,还有其他组件)和实际的测试脚本,可以在团队成员之间共享。此 VM 应该能够执行无外设测试,但理想情况下还应该能够在主机上驱动测试(如果可能)。

从技术上讲,它应该支持 QA 在产品中发现问题的情况,并且应该能够指定所需的脚本来重现它。负责解决问题的开发人员只需在其计算机上运行脚本即可实际重现发现的错误。

最终,我们希望将 VM 迁移到实际的服务器,因此我们希望从一开始就这样设置它。一旦我们准备好移动到物理服务器,这将使事情变得更加简单。

我一直在互联网上寻找详细的文档,但在几乎任何文档中都对已经配置和设置的环境做出了许多假设。我真的需要逐步解释如何设置。

PHPUnit与Selenium配对似乎有点奇怪,因为它们都涵盖了完全不同的测试领域。我在 PHPUnit 网站上看到了(同样不完整的)说明,但这似乎非常笨拙,我们的开发团队对这种设置不是很热衷。我们有人建议 Jenkins,但我个人不明白 Jenkins 将如何消除 Selenium 的正常设置,无论如何都必须从一开始就经历。

我已经在 VM 中将 Selenium Server 作为服务运行,我只需要知道我还需要什么,以及我需要如何设置它,如何配置它。 如何让事物沟通等。

任何帮助/想法将不胜感激。

要使其在本地运行,请按照此处的说明进行操作:

https://github.com/facebook/php-webdriver#getting-started

下面是您可以使用的示例 PHP Web 驱动程序脚本。 它将打开火狐浏览器,将您带到谷歌的页面并提交搜索查询:

    // you'll need to modify this path so it points to the composer autoloader
    require_once __DIR__ . '/vendor/autoload.php';
    /**
     * since I'm running the selenium jar locally, this is all I need.
     * I just run it in the background and my php scripts connect to it and
     * the tests
     */ 
    $host = 'http://localhost:4444/wd/hub';
    $driver = RemoteWebDriver::create($host, DesiredCapabilities::firefox());
    $driver->get('http://google.com');
    $element = $driver->findElement(WebDriverBy::name('q'));
    $element->sendKeys('Cheese');
    $element->submit();

这是您要查找的细节吗?