元素是否保证按照它们在 DOM 中出现的顺序返回?

Bre*_*dly 5 selenium selenium-webdriver webdriver-io

我用来WebdriverIO驱动我的 Selenium 服务器,但我很好奇 Selenium 规范或 CSS 规范中是否有保证,保证元素按照它们在页面上出现的顺序返回。

例如:

<ul>
 <li>One</li>
 <li>Two</li>
 <li>Three</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

如果我这样做driver.getText('li');,我保证它会返回:

['One', 'Two', 'Three']
Run Code Online (Sandbox Code Playgroud)

或者是否存在行为未定义的情况?也许我应该期待什么样的行为?我想这可能是深度优先搜索?

ale*_*cxe 5

是的,顺序由WebDriver 规范保证:

所有元素位置策略必须按照元素在当前文档中出现的顺序返回元素。