0
當前使用帶有Javascript的黃瓜量角器框架的Protractor 5.1.0。使用黃瓜場景示例中的同一頁面
在特徵文件中使用以下方案概述:
Feature: As an online customer
I should be able to validate the Benefits Page and links on it
Background:
Given I am on the "Benefits Page"
@regression @fixup
Scenario Outline: validation of the MyPage links
When I click on the "<link>" link
Then a new tab should be opened
Then I should be directed to the "<URL>" in new window
Examples:
|link |URL |
|Benefit (PDF) |/guide-to-benefit.pdf |
|Pro Benefit (PDF) |/professional-benefit.pdf |
|Signature Benefit (PDF) |/signature-guide-to-benefits-revised.pdf |
|Business Benefit (PDF) |/business-benefits.pdf |
和頁面文件如下:
var Benefits_Guide_Page = function (PageUrl) {
this.visit = function (PageUrl) {
browser.manage().deleteAllCookies();
browser.get(PageUrl);
};
this.get_element = function (element_name) {
switch (element_name) {
//Links Navigates to different window
case "Benefit (PDF)":
case "Pro Benefit (PDF)":
case "Signature Benefit (PDF)":
case "Business Benefit (PDF)":
return element(by.linkText(element_name));
break;
... // continue element checks
每個場景打開的標籤,切換到新的選項卡,驗證網址,關閉新標籤,切換到原來的標籤,重載原來的頁面,開始下一個例子。
我覺得有一個答案的this Android Q&A東西,但我不知道這是同樣的問題。
基本上,我並不需要的頁面,每個例子重裝。在更大的測試環境中浪費和浪費時間。
我還有其他的場景中我檢查在同一窗口中加載的鏈接。我只需要「返回」並檢查下一個鏈接或同一頁面定位點,而不是再次加載頁面。
任何提示?
在新選項卡中打開新頁面的情況 - 重新加載原始頁面的原因是什麼?由於新選項卡,是否對原始頁面有任何影響?如果沒有,那麼不要重新加載原始頁面...在同一個標籤中打開新頁面的情況 - 你嘗試過browser.navigate()。back()返回到原始頁面的一步嗎?... – Grasshopper
我是猜測你一開始就要進入頁面?你可以把它包裝在if語句中。如果我不在此頁面上,請獲取頁面。這意味着它會執行一次或失敗。 –
@Grasshopper和@ kyle-fairns,增加了一些更多的上下文。 _重新加載原始頁面的原因是什麼?_ **無**,我可以告訴。它似乎是頁面定義文件的結果,但我不確定它是如何組織的。如果每個_example_調用頁面定義,那麼我可能會被卡住。 _note_我繼承了這個爛攤子。此頁面需要2分鐘才能檢查,因爲他們在每次運行中放置了5秒的「睡眠」,因爲他們沒有正確使用Promises等待。減少到30秒。如果我能解決重裝問題,我想我可以削減更多。 – javafueled