我是使用 Selenium 的新手。我已经下载了 Selenium Standalone Server 并通过键入成功运行它
java -jar selenium-server-standalone-2.14.0.jar
进入命令行。
运行后
phpunit.bat
从命令行,我的所有测试都会按预期通过,除了一个测试,除非我手动最大化在测试过程中自动打开的 Firefox 浏览器窗口。
在测试运行时,当 Firefox 浏览器窗口打开时,如果我在登录测试运行时没有最大化该窗口,那么该测试将失败并以某种方式重定向到我网站上的意外页面。如果我在测试完成之前最大化窗口,则会按预期单击“登录”按钮,加载正确的页面,并且测试通过。
因此,我想知道是否有办法更改某处的设置,以便 Firefox 浏览器在测试运行时最大化打开?
我用 Google 搜索了一下,发现了一些可能有帮助的各种代码片段,但我不确定该代码的 PHP 版本在哪里,或者在哪里放置我正在使用的 Selenium 版本的类似代码( Selenium 独立服务器):
# repositioning and resizing browser window:
driver.manage.window.move_to(300, 400)
driver.manage.window.resize_to(500, 800)
driver.manage.window.maximize
或者这是 C#,但我需要 PHP 并且不知道在哪里可以找到正确的代码或将其放在哪里:
driver.Manage().Window.Maximize();
这是我的测试/SeleniumTest.php 文件中相关登录 Selenium 测试的代码(使用 Laracasts/Integrated):
<?php
use Laracasts\Integrated\Extensions\Selenium;
use Laracasts\Integrated\Services\Laravel\Application as Laravel;
class SeleniumTest extends Selenium
{
use Laravel;
/**
* Tests to see if the login page loads
*/
public function testToSeeIfLoginLoads()
{
$this->visit('/login')
->see('Login')->see('Email Address')->see('Password')
->type('myemail@email.com', 'email')->type('mypassword', 'password')
->waitForElement('log_in')
->click('log_in')
->waitForElement('table_summary')
->see('Complete Course Summary');
}
最佳答案
我没有使用 Laravel,我使用的是经典的 phpunit + selenium RC 和/或 webdriver,如果我只想将其用于特定测试,则在打开 url 后,这对我的两种实现都有效:
$this->open("/");
$this->getEval("window.resizeTo(1225, 996); window.moveTo(0,200);");
//or $this->windowMaximize();
或者对于 facebook-webdriver:
$this->driver->get('myurl/');
$this->driver->manage()->window()->setSize(new WebDriverDimension(1225, 996));
如果您想要它用于所有测试,您应该找到 setUp 方法并将其放在那里。在您的情况下,对于特定测试,this should work :
$this
->visit('/')->session->window($this->session->window_handle())
->postSize(['height' => 996, 'width' => 1225]);
要导入WebDriverDimensions
添加
use Facebook\WebDriver\WebDriverDimension;
有关使用的更多信息,here .
关于php - Selenium 浏览器窗口大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34054264/