2014-12-04 83 views
2

量角器V1.4.0的文檔(http://angular.github.io/protractor/#/api-overview)試圖描述量角器全局變量:困惑量角器V1.4.0「量角器」和「瀏覽器」的全局變量

browser - 圍繞一個實例的包裝WebDriver,用於導航和頁面範圍的信息。 browser.get方法加載一個頁面。 Protractor希望Angular出現在頁面上,所以如果它正試圖加載的頁面不包含Angular庫,它將會拋出一個錯誤。 (如果您需要與非Angular頁面交互,您可以直接使用browser.driver訪問包裝的webdriver實例)。

protractor - 包裝WebDriver命名空間的Protractor命名空間。包含靜態變量和類,例如protractor.Key,枚舉特殊鍵盤信號的代碼。

我的問題:

1)我真的不明白這些定義和在browser定義browserprotractor

2)之間的差異有提到的關於browser.driver但是當我看到對於量角器API文檔(http://angular.github.io/protractor/#/api),沒有driver屬性可用於browser

回答

3

1)有3個重要關鍵字:element,browserprotractor

element是你如何選擇頁面上的內容,browser是你是如何與你正在測試的瀏覽器進行交互(即browser.get(...)),protractor是一個快捷方式,您可以訪問在webdriver命名空間中定義靜態變量。

例如:

browser.get('http://www.someUrl.com'); // tell browser to go to an url 
var input = element(by.css('#someInput')); // find the input using a css selector 
input.sendKeys(protractor.Key.ENTER); // Send a `webdriver` key to the element (see http://selenium.googlecode.com/git/docs/api/javascript/enum_webdriver_Key.html) 

我建議你去通過http://angular.github.io/protractor/#/tutorial作爲一個起點。

2)那是因爲driverbrowser中的一個屬性,而不是函數。使用browser.driver來訪問原始webdriver(儘管作爲一個新用戶,你不應該使用它)

+0

請看看量角器v1.4.0 API頁面(http://angular.github.io/protractor/ #/ API-概覽)。請參閱左側欄中「by」的部分。有,這就是'通過 - addLocator, 結合, exactBinding, 模型, buttonText, partialButtonText, 中繼器, cssContainingText, options'。儘管我們可以在量角器中使用'by.id',但是我看不到'id',這很混亂。整體Api頁面看起來非常糟糕。我找不出與哪些東西有關的東西。爲什麼''''屬性在'by' api下丟失了? – 2014-12-05 07:20:32

+1

對不起,我遺漏了'by'。 'by'總是和'element'一起使用,並用作選擇器(請注意我在原始示例中的用法)。 'by.id'是「http://angular.github.io/protractor/#/api?view=webdriver.By.id」。它不在'by'部分之下,而是在'webdriver.By'部分之下的原因是因爲這是一個由webdriver而不是量角器暴露的定位器。 – hankduan 2014-12-08 23:25:53