如何在Linux上让Selenium与PHP / Firefox3一起使用
时间:2020-03-06 15:04:31 来源:igfitidea点击:
我正在尝试让Selenium RC在具有PHP / Apache的Linux上与Firefox 3配合使用,但是遇到了问题。这是我所做的:
- 我已经安装了Firefox Selenium-IDE扩展。
- 在Web服务器(在我的情况下,它实际上是运行Firefox的同一台计算机)上,我使用以下命令启动了Selenium服务器:java -jar selenium-server.jar -interactive
- 我有一个PHP脚本,如下所示:
PHP:
require_once 'Testing/Selenium.php'; $browser = new Testing_Selenium("*custom /usr/lib/firefox-3.0.3/firefox", "https://www.example.com"); $browser->start();
当我运行PHP脚本时,它确实会启动一个新的Firefox选项卡,但出现以下错误消息:
The requested URL /selenium-server/core/RemoteRunner.html was not found on this server.
我在Firefox 2上获得了更大的成功(通过使用" * firefox"代替" * custom",但是不想在我当前的项目中使用它。)
解决方案
我不确定回答我们自己的问题的礼节...但是以反复试验的方式进行了试验,这就是我如何使Selenium在Ubuntu上与PHP / Firefox3一起工作的方式。
- 我下载了RC并将php客户端目录复制为/ Selenium到/ usr / share / php
- 我导航到下载中的Selenium Server目录,并使用
java -jar selenium-server.jar
启动了selenium。 - 我创建了一个新的Firefox配置文件(通过运行firefox -ProfileManager)。我将新的配置文件称为"硒"
- 在该配置文件中,我编辑Firefox Network首选项以通过localhost端口4444代理所有协议。
- 我创建了我的PHP脚本并使用以下命令运行它:
php -d include_path ="。:/ usr / share / php:/ usr / share / php / Selenium / PEAR" test.php
我在下面列出了我的(基本,非PHPUnit,非OO)第一个测试脚本,以供参考。
require_once 'Testing/Selenium.php'; $oSelenium = new Testing_Selenium( "*custom /usr/lib/firefox-3.0.3/firefox -P Selenium", "https://www.example.com"); $oSelenium->start(); $oSelenium->open("/"); if (!$oSelenium->isElementPresent("id=login_button")) { $oSelenium->click("logout"); $oSelenium->waitForPageToLoad(10000); if (!$oSelenium->isElementPresent("id=login_button")) { echo "Failed to log out\n\n"; exit; } } $oSelenium->type("login", "my_username"); $oSelenium->type("password", "my_password"); $oSelenium->click("login_button"); $oSelenium->waitForPageToLoad(10000); $oSelenium->click("top_nav_campaigns"); $oSelenium->stop();
我使用phpunit,硒RC php API运行我的测试用例。我的测试用例看起来像
1235$Deepan@Newton~/selenium/ide_scripts$ cat mytest.php 'FF on linux', 'browser' => '*firefox', 'host' => '10.211.55.8', 'port' => 4444, 'timeout' => 30000, ), array( 'name' => 'FF on windows', 'browser' => '*firefox', 'host' => '10.211.55.5', 'port' => 4444, 'timeout' => 30000, ), */ array( 'name' => 'Google Chrome on windows', 'browser' => '*googlechrome', 'host' => '10.211.55.5', 'port' => 4444, 'timeout' => 30000, ), /* array( 'name' => 'IE on windows', 'browser' => '*iexplore', 'host' => '10.211.55.5', 'port' => 4444, 'timeout' => 30000, ), array( 'name' => 'Safari on MacOS X', 'browser' => '*safari', 'host' => 'localhost', 'port' => 4444, 'timeout' => 30000, ), array( 'name' => 'Firefox on MacOS X', 'browser' => '*chrome', 'host' => 'localhost', 'port' => 4444, 'timeout' => 30000, ), */ array( 'name' => 'Google Chrome on MacOS X', 'browser' => '*googlechrome', 'host' => 'localhost', 'port' => 4444, 'timeout' => 30000, ) ); protected function setUp() { //$this->setBrowser("*chrome"); $this->setBrowserUrl("http://www.facebook.com/"); } public function testMyTestCase() { $this->open("/index.php?lh=94730c649368393b6954cb9fc0802e0a&eu=iKjrC7Q2aC-8tcU7PVLilg"); $this->type("email", "[email protected]"); $this->type("pass", "mypassword"); $this->click("persistent"); $this->click("//input[@type='submit']"); $this->waitForPageToLoad("30000"); sleep(10); $this->open("http://apps.facebook.com/myapp/"); sleep(4); $this->click("link=Play"); $this->waitForPageToLoad("30000"); sleep(4); $this->click("navAccountLink"); sleep(4); $this->click("link=Logout"); $this->waitForPageToLoad("30000"); sleep(4); } } ?> 1332$Deepan@Newton~/selenium/ide_scripts$ phpunit mytest.php
这将连接到在虚拟机内部运行的浏览器