2014-12-04 85 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