我是使用硒的新手。我已經下載了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