Javascript 如何使用量角器和文件配置等待元素出现?
我正在尝试使用量角器等待输入“Username”出现,然后在上面插入值。我怎么做Javascript 如何使用量角器和文件配置等待元素出现?,javascript,protractor,Javascript,Protractor,我正在尝试使用量角器等待输入“Username”出现,然后在上面插入值。我怎么做 browser.get('http://localhost:5555/#'); var login = browser.driver.findElement(by.id('Username')); 用于等待特定条件,即元素出现或可见。用于填充输入 var login = element(by.id('Username')); var EC = protractor.ExpectedConditions; brow
browser.get('http://localhost:5555/#');
var login = browser.driver.findElement(by.id('Username'));
用于等待特定条件,即元素出现或可见。用于填充输入
var login = element(by.id('Username'));
var EC = protractor.ExpectedConditions;
browser.wait(EC.presenceOf(login)).then(function() {
login.sendKeys('myuser');
});
这属于您的规范,而不是您的配置。用于等待特定条件,即元素出现或可见。用于填充输入
var login = element(by.id('Username'));
var EC = protractor.ExpectedConditions;
browser.wait(EC.presenceOf(login)).then(function() {
login.sendKeys('myuser');
});
这属于您的规范,而不是您的配置。如果您的应用程序是一个角度应用程序,并且您做的一切都是正确的,那么您无需等待元素或页面加载 量角器为你做。有关详细信息,请参阅API文档
如果你感兴趣,也可以检查一下。在我的博客上写了更多信息如果你的应用程序是一个有角度的应用程序,并且你做的一切都是正确的,那么你不需要等待元素或页面加载 量角器为你做。有关详细信息,请参阅API文档
如果你感兴趣,也可以检查一下。在我的博客上写了更多的信息我想有两件事
- 使用元素的快捷方式版本(by.id())
- 将变量设置为let,而不是var
- 为等待提供超时,否则它将是无止境的,并且只有在测试超时时才会失败(为等待浪费时间)
- 提供等待失败错误消息(等待函数中的第三个参数)-在失败时具有更好的可读性
- 无需将
放入回调,即使没有此选项,量角器控制流也会以正确的顺序执行命令sendKeys()
let loginField = $('#Username');
let EC = protractor.ExpectedConditions;
browser.wait(EC.visibilityOf(loginField), 3000, 'Login field should be visible before entering text');
loginField.sendKeys('myuser');
我会假设两件事
- 使用元素的快捷方式版本(by.id())
- 将变量设置为let,而不是var
- 为等待提供超时,否则它将是无止境的,并且只有在测试超时时才会失败(为等待浪费时间)
- 提供等待失败错误消息(等待函数中的第三个参数)-在失败时具有更好的可读性
- 无需将
放入回调,即使没有此选项,量角器控制流也会以正确的顺序执行命令sendKeys()
let loginField = $('#Username');
let EC = protractor.ExpectedConditions;
browser.wait(EC.visibilityOf(loginField), 3000, 'Login field should be visible before entering text');
loginField.sendKeys('myuser');
无需解析
browser.wait
:browser.wait(EC.presenceOf(login))返回的承诺;login.sendKeys('myuser')代码>@FlorentB。你说得对,我只是觉得它在我看来更具可读性。可读性有时是一件“个人”事情:)不过,代码越“扁平”,一般来说就越好。presenceOf
不会检查元素的可见性,使用visibilityOf
或elementtobelickable
确保元素可见。因为元素可能存在于DOM中,但不可见。在这种情况下,等待将成功,但sendKeys可能会失败。无需解析浏览器返回的承诺。等待
:浏览器。等待(EC.presenceOf(login));login.sendKeys('myuser')代码>@FlorentB。你说得对,我只是觉得它在我看来更具可读性。可读性有时是一件“个人”事情:)不过,代码越“扁平”,一般来说就越好。presenceOf
不会检查元素的可见性,使用visibilityOf
或elementtobelickable
确保元素可见。因为元素可能存在于DOM中,但不可见。在这种情况下,等待将成功,但sendKeys可能会失败