WebdriverIO中browser.与driver.命令的区别及功能对比
WebdriverIO中
browser与driver命令的区别 核心关联
- 在单浏览器会话的测试场景中,
browser是当前WebDriver实例的全局别名,和driver指向同一个对象,本质是同一个事物的不同引用。 - 仅在多会话测试(比如同时控制多个浏览器窗口/实例)场景下,
driver会被用来指代特定的会话实例,而browser默认绑定第一个创建的会话。
功能差异
- 绝大多数命令(如
get()、click()、pause())在browser和driver上调用的效果完全一致,比如browser.pause(3000)和driver.pause(3000)都会让当前会话暂停3秒。 - 多会话场景下才会出现功能区分:如果创建了多个
driver实例,不同driver的命令会作用在各自对应的浏览器会话上,而browser依然只操作默认会话。
是否属于完全不同的事物?
绝对不是。单会话场景下二者完全等价;多会话场景下,browser只是默认driver实例的全局快捷方式,其他driver是额外创建的会话实例,本质都是WebDriver会话对象。
关于driver.pause(3000)
不管用browser.pause()还是driver.pause(),作用都是让当前测试会话暂停指定毫秒数,一般用来临时处理页面加载延迟。但更推荐使用WebdriverIO内置的智能等待命令(比如waitForDisplayed()),硬编码的暂停时间会让测试稳定性降低、运行效率变差。
内容的提问来源于stack exchange,提问作者Christian Fortin
相关产品推荐
相关产品推荐

