跳至主要内容

url

url 命令在浏览器中加载 URL。如果在配置中指定了 baseUrl,则会使用 Node 的 url.resolve() 方法将其附加到 url 参数前面。如果使用与上次相同的 url 调用 browser.url('...'),则会触发页面重新加载。

该命令返回一个 WebdriverIO.Request 对象,其中包含有关页面加载的请求和响应数据的信息。

该命令支持以下选项

wait

在完成命令之前,请求的资源应处于的所需状态。它支持以下状态

  • none:发出页面请求并收到响应后不等待
  • interactive:等待页面处于交互状态
  • complete:等待页面的 DOM 树完全加载
  • networkIdle:等待所有网络请求完成

headers

要与请求一起发送的标头。

默认值: {}

auth

基本身份验证凭据。注意:如果在 headers 选项中提供,这将覆盖现有的 Authorization 标头。

timeout

如果设置为数字,则命令将等待指定毫秒数,以等待页面加载所有响应后再返回。

注意:要使其生效,需要将 wait 选项设置为 networkIdle

默认值: 5000

用法
browser.url(url, options)
参数
名称类型详情
url
可选
字符串要导航到的 URL
选项
可选
UrlOptions导航选项
示例
url.js
// navigate to a new URL
const request = await browser.url('https://webdriverio.node.org.cn');
// log url
console.log(request.url); // outputs: "https://webdriverio.node.org.cn"

baseUrlResolutions.js
// With a base URL of http://example.com/site, the following url parameters resolve as such:
// When providing a scheme:
// https://webdriverio.node.org.cn
await browser.url('https://webdriverio.node.org.cn');

// When not starting with a slash, the URL resolves relative to the baseUrl
// http://example.com/site/relative
await browser.url('relative');

// When starting with a slash, the URL resolves relative to the root path of the baseUrl
// http://example.com/rootRelative
await browser.url('/rootRelative');

basicAuth.js
// navigate to a URL with basic authentication
await browser.url('https://the-internet.herokuapp.com/basic_auth', {
auth: {
user
pass
}
});
await expect($('p=Congratulations! You must have the proper credentials.').toBeDisplayed();

onBeforeLoad.js
// navigate to a URL and mock the battery API
await browser.url('https://pazguille.github.io/demo-battery-api/', {
onBeforeLoad (win) {
// mock "navigator.battery" property
// returning mock charge object
win.navigator.getBattery = () => Promise.resolve({
level: 0.5,
charging: false,
chargingTime: Infinity,
dischargingTime: 3600, // seconds
})
}
})
// now we can assert actual text - we are charged at 50%
await expect($('.battery-percentage')).toHaveText('50%')
// and has enough juice for 1 hour
await expect($('.battery-remaining')).toHaveText('01:00)

欢迎!我如何帮助您?

WebdriverIO AI Copilot