Protractor 在什么情况下,我需要使用量角器ExpectedConditions来等待元素
我不熟悉量角器,我想知道在什么情况下使用量角器时需要使用Protractor 在什么情况下,我需要使用量角器ExpectedConditions来等待元素,protractor,Protractor,我不熟悉量角器,我想知道在什么情况下使用量角器时需要使用ExpectedConditions(下面的示例)。我认为量角器会自动确定AngularJS页面何时被完全加载 let EC = ExpectedConditions; let condition = EC.presenceOf(element(by.id("something"))); browser.wait(condition, 10000); 谢谢,Eric根据我使用量角器的经验,预期条件的使用取决于正在自动化的页面的行为。如果
ExpectedConditions
(下面的示例)。我认为量角器会自动确定AngularJS页面何时被完全加载
let EC = ExpectedConditions;
let condition = EC.presenceOf(element(by.id("something")));
browser.wait(condition, 10000);
谢谢,Eric根据我使用量角器的经验,预期条件的使用取决于正在自动化的页面的行为。如果条件在指定的时间内不符合要求,则通常会因失败而使用此选项 这些条件也会回报一个你可以随心所欲处理的承诺 我将为您提供一些场景,以便您了解在何处使用它们
// will click on a button
element(by.id('button')).click();
// will wait for the condition
let EC = ExpectedConditions;
browser.wait(EC.alertIsPresent(), 5000);
单击按钮后,以下代码将等待5秒钟,以查看警报是否存在,否则将抛出错误
// complete both textfields required for the button to be enabled
element(by.id('username')).sendKeys('User1234');
element(by.id('password')).sendKeys('Protractor');
// will wait for the condition and then will click the button
let EC = ExpectedConditions;
browser.wait(EC.elementToBeClickable(element(by.id('loginButton'))), 1000);
element(by.id('loginButton')).click();
在完成两个文本字段后,条件将等待1秒,以便元素可以单击,如果可以,它将继续下一行并单击它。另一方面,如果没有,将抛出一个错误
// check all questions directly, without selecting any radio buttons
let EC = ExpectedConditions;
browser.wait(EC.presenceOf(element(by.id('question-1'))), 1000);
browser.wait(EC.presenceOf(element(by.id('question-2'))), 1000);
browser.wait(EC.presenceOf(element(by.id('question-3'))), 1000);
在这里,时间是无关紧要的;尽管如此,使用此条件,我们将能够检查问题是否存在于DOM中,即使这些问题是隐藏的。如果缺少一个,则错误将立即中断测试
这是我过去不得不处理的几个例子。条件的使用是情境性的,当您想要使用现有条件时,它们通常是有用的,因为它们节省了您自己构建条件的时间
PD:更多信息可在中找到 根据我使用量角器的经验,ExpectedConditions的使用取决于正在自动化的页面的行为。如果条件在指定的时间内不符合要求,则通常会因失败而使用此选项 这些条件也会回报一个你可以随心所欲处理的承诺 我将为您提供一些场景,以便您了解在何处使用它们
// will click on a button
element(by.id('button')).click();
// will wait for the condition
let EC = ExpectedConditions;
browser.wait(EC.alertIsPresent(), 5000);
单击按钮后,以下代码将等待5秒钟,以查看警报是否存在,否则将抛出错误
// complete both textfields required for the button to be enabled
element(by.id('username')).sendKeys('User1234');
element(by.id('password')).sendKeys('Protractor');
// will wait for the condition and then will click the button
let EC = ExpectedConditions;
browser.wait(EC.elementToBeClickable(element(by.id('loginButton'))), 1000);
element(by.id('loginButton')).click();
在完成两个文本字段后,条件将等待1秒,以便元素可以单击,如果可以,它将继续下一行并单击它。另一方面,如果没有,将抛出一个错误