判断元素是否已成功加载。这些方法可以根据不同的场景来选择使用:
presenceOf
用途: 判断元素是否存在于 DOM 中,不要求元素必须可见。
代码示例:
const elem = element(by.css('.your-element'));
await browser.wait(protractor.ExpectedConditions.presenceOf(elem), 10000);
visibilityOf
用途: 判断元素是否存在于 DOM 中且可见,意思是 display 不为 none,visibility 不为 hidden,opacity 不为 0。
代码示例:
const elem = element(by.css('.your-element'));
await browser.wait(protractor.ExpectedConditions.visibilityOf(elem), 10000);
invisibilityOf
用途: 判断元素是否不可见或从 DOM 中移除。适用于等待某个元素消失的情况。
代码示例:
const elem = element(by.css('.your-element'));
await browser.wait(protractor.ExpectedConditions.invisibilityOf(elem), 10000);
elementToBeClickable
用途: 判断元素是否存在于 DOM 中并且可以点击。即元素可见且启用。
代码示例:
const elem = element(by.css('.your-button'));
await browser.wait(protractor.ExpectedConditions.elementToBeClickable(elem), 10000);
stalenessOf
用途: 判断一个元素是否从 DOM 中移除或变为不可用。通常用于等待元素在 DOM 中消失。
代码示例:
const elem = element(by.css('.your-element'));
await browser.wait(protractor.ExpectedConditions.stalenessOf(elem), 10000);
textToBePresentInElement
用途: 判断某个元素中是否存在指定的文本。适用于动态加载内容时验证内容是否加载完成。
代码示例:
const elem = element(by.css('.your-element'));
await browser.wait(protractor.ExpectedConditions.textToBePresentInElement(elem, 'Expected Text'), 10000);
titleIs
用途: 判断当前页面的标题是否等于指定值。
代码示例:
await browser.wait(protractor.ExpectedConditions.titleIs('Expected Title'), 10000);
urlContains
用途: 判断当前页面的 URL 是否包含指定的子串。
代码示例:
await browser.wait(protractor.ExpectedConditions.urlContains('expected-substring'), 10000);
urlIs
用途: 判断当前页面的 URL 是否等于指定值。
代码示例:
await browser.wait(protractor.ExpectedConditions.urlIs('http://example.com/expected-url'), 10000);
elementToBeSelected
用途: 判断元素是否被选中,如复选框或单选按钮。
代码示例:
const elem = element(by.css('.your-checkbox'));
await browser.wait(protractor.ExpectedConditions.elementToBeSelected(elem), 10000);
这些方法可以结合使用,根据具体场景选择适合的方法来判断元素是否加载成功。例如,如果你只关心元素是否存在于 DOM 中,可以使用 presenceOf
;如果需要确保元素不仅存在还需要可见,则可以使用 visibilityOf
。