php - Selenium 浏览器窗口大小

标签 php unit-testing firefox selenium laravel-5.1

我是使用 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/

相关文章:

RestTemplate 和 RetryTemplate 的 JAVA Mockito 单元测试

css - Firefox 上的样式滚动条

php - 从 AngularJS UI 获取 MySQL 数据

php - var_dump() 显示数组,但 is_array() 为 false

java - @Mocked、@Injectable 和@Capturing 之间有什么区别?

firefox - 多个具有相同名称、域和路径的 cookie?

html - 如何在 Firefox 中删除 <select> 下拉图标背景颜色

php - http_response_code() 不工作,总是输出 200

php - 提高 Gmail API 速度的方法 (PHP)

c# - 创建一个 IEqualityComparer<IEnumerable<T>>