硒2(WebDriver)和进行?
-
25-09-2019 - |
题
任何一个知道如何使用硒2进行?是否有任何硒2个样本在PHP?
解决方案
快速更新: 进行不现在支持硒2
在编写本报告时,进行不支持硒2.
php-webdriver 从 facebook 允许完成WebDriver API被称为从PHP中的一个优雅的方式。引用:
大多数客户需要你第一次读的协议,看看有什么 可能的,然后研究的客户本身,看看如何称呼它。此 希望消除这后一步骤。
它是用来启动的硒2服务,其提供的接口 localhost:4444/wd/hub
.
/usr/bin/java -jar /path/to/selenium-server-standalone-2.7.0.jar
然后运行的PHP测试的代码,其中要求该接口。例如:
<?php
require '/path/to/php-webdriver/__init__.php';
$webdriver = new WebDriver();
$session = $webdriver->session('opera', array());
$session->open("http://example.com");
$button = $session->element('id', 'my_button_id');
$button->click();
$session->close();
的 WebDriver API 是映射到PHP方法,比较叫 click
上 element
在该实例中的要素/击API调在文件。
测试代码然后可以被包裹在经常进行测试。
这是不当地进行支持,但这是一个很健壮的方法。
其他提示
请看 http://code.google.com/p/php -webdriver-绑定/ 。这是使用JsonWireProtocol与硒的webdriver服务器通信PHP库。这是早期的版本,但它的工作原理。
目前(2017年),我建议使用 PHP-webdriver的,什么是AFAIK功能最完整的PHP语言与硒的webdriver结合相互作用。
该库在2014年被改写为支持硒2,它的API主要是基于官方的Java绑定的webdriver。这意味着你还可以用Java编写的代码示例的优势,因为它们可以被简单地通常遵循PHP。其也写在现代OOP方式和遵循标准的PSR-4的命名空间和也PSR-2编码标准。
我会推荐这个图书馆在 PHPUnit的硒 - 因为它最初设计用于硒1(尽管它现在支持硒2)和它的API强烈紧PHPUnit的。它也不支持某些webdriver的功能,并且没有及时最新与upcomin W3C规范的webdriver 。
PHP-webdriver的是,另一方面独立的库,但它的 PHPUnit的整合很简单 - 或者你可以使用现有的工具,如的管家,其中包括所有PHPUnit的积分,并且还提供很好的便利层和例如。允许并行简单地运行多个测试(而不需要的另一个工具,如 paratest )。
PHPUnit的硒集成代码住在 github上一个单独的项目,据我可以看到它不支持硒2,所以回答你的问题是 - 不,你不能使用PHPUnit使用Selenium 2
但你可以克隆的源代码树,并使其与硒2工作。
我们创建了一个图书馆为此,我希望它帮助。它还使用id线协议,但我们的目的是使它兼容的例子,从其他语言,因此法将是非常相似。这里就是链接: https://github.com/Nearsoft/PHP-SeleniumClient
如果你喜欢它,分享,提高它或叉它:)
问候,马克。
进行webdriver绑定在谷歌的代码。有什么我们需要理解,超出这一点。
- 进行需要安装。(无论是通过梨包装或下载,安装手)
- PHP IDE如日蚀PDT已被下载,安装。
- 硒独立的服务器已经运行,同时执行WebDriver硒测试
我写了一个关于如何使用Selenium 2,Facebook的包装,在这里找到的教程:
HTTP://testigniter.blogspot。 co.uk/2012/01/running-selenium-2-webdriver-using.html
我recommened的 MENTA ,硒2框架需要的的webdriver 。两种封装都PSR-0兼容,所以你可以与作曲家使用它们。你可以用phpunit.xml配置硒。这里的示例
<phpunit bootstrap="tests/bootstrap.php"
backupGlobals="false" backupStaticAttributes="false"
strict="true" verbose="true">
<php>
<var name="testing.selenium.seleniumServerUrl" value="http://localhost:4444/wd/hub" />
<var name="testing.selenium.browser" value="firefox" />
<var name="testing.selenium.windowPosition" value="0,0" />
<var name="testing.selenium.windowSize" value="1280x1024" />
<var name="testing.selenium.windowFocus" value="1" />
<var name="testing.selenium.timeoutImplicitWait" value="10000" />
</php>
<testsuites>
<testsuite name="Integrationstests">
<directory suffix="Test.php" phpVersion="5.3.0" phpVersionOperator=">=">tests/integration</directory>
</testsuite>
</testsuites>
<logging>
<log type="junit" target="build/logs/junit.xml"/>
</logging>
</phpunit>
自举文件从testing.selenium读取配置变量。*,所以可以容易地设定新的变量。
<?php
\Menta_ConfigurationPhpUnitVars::addConfigurationFile(__DIR__ . '/../phpunit.xml');
$configuration = \Menta_ConfigurationPhpUnitVars::getInstance();
\Menta_SessionManager::init(
$configuration->getValue('testing.selenium.seleniumServerUrl'),
$configuration->getValue('testing.selenium.browser')
);
现在您可以轻松实现你的测试用例。这里的示例
<?php
namespace tests\integration;
use WebDriver\LocatorStrategy;
class TestSearch extends \PHPUnit_Framework_TestCase
{
public function testGoogle()
{
$session = \Menta_SessionManager::getSession();
$session->open('http://www.google.de');
$element = $session->element(LocatorStrategy::NAME, 'q');
$this->assertTrue($element->displayed());
}
}
今天,深吸跳进硒和PHPUnit的。 这是可能的,你可能会发现在这里的一些例子和说明: http://phpunit.de/manual/current/en/selenium.html
的PHPUnit创建者得到了API的一些很好的例子。 随着一点点的实验和读取错误信息,你会相处。 没有带发现了一个伟大的图书馆我自己也是如此。
https://github.com/sebastianbergmann/phpunit-硒/斑点/主/测试/ Selenium2TestCaseTest.php
由于从NETTUTS与去年的教程,帮助你前进的基础: http://net.tutsplus.com/教程/ PHP /如何使用的硒-2-与-的PHPUnit /
我的工作。我有Selenium1太多的测试记录硒IDE。现在,它的HTML测试转换成Selenium2。实际上,对于PHPUnit_Extensions_Selenium2TestCase。我要执行多个命令。