我是使用硒的新手。我已经下载了Selenium Standalone Server,并成功通过输入硒浏览器窗口大小
java -jar selenium-server-standalone-2.14.0.jar
进入命令行。
运行
phpunit.bat
命令行,毕竟我的测试将通过如预期,除了一,除非我手动最大化是自动在测试过程中打开Firefox浏览器窗口。
虽然测试运行,Firefox浏览器窗口打开时,如果我的登录测试运行时,我没有最大化窗口,那么该测试将失败并以某种方式重定向到意想不到的网页上我的网站。如果我在测试完成之前最大化窗口,那么按照预期点击“登录”按钮,加载正确的页面,并通过测试。
因此,我想知道是否有办法改变的地方,这样Firefox浏览器将只开放测试期间,运行最大化的设置?
我搜索了一下,发现了一些可能有所帮助的代码片段,但我不确定这个代码的PHP版本在哪里,或者在哪里为我使用的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();
这里是从我的测试/ SeleniumT登录Selenium测试代码(使用Laracasts/Integrated) est.php文件:
<?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('[email protected]', 'email')->type('mypassword', 'password')
->waitForElement('log_in')
->click('log_in')
->waitForElement('table_summary')
->see('Complete Course Summary');
}
这听起来像你建立你的脆弱的登录测试,使窗口内的按钮的位置很重要。您应该考虑在DOM元素上调用点击事件,而不是依赖点击位置X,Y。 –
@MikeBrant这是一个符合问题的逻辑解决方案,但我只是更新了上面的问题,以包含失败的登录测试。据我所知,按钮应该被点击,不管它在页面上的什么位置,因为它被id“log_in”引用。 – user3089840