url
دستور url
یک نشانی اینترنتی را در مرورگر بارگذاری میکند. اگر یک baseUrl در پیکربندی مشخص شده باشد،
این آدرس به پارامتر url با استفاده از متد url.resolve() نود اضافه میشود. فراخوانی
browser.url('...')
با همان نشانی اینترنتی قبلی، باعث بارگذاری مجدد صفحه میشود. با این حال،
اگر نشانی اینترنتی شامل یک هش باشد، مرورگر ناوبری جدیدی را آغاز نمیکند و کاربر
باید صفحه را رفرش کند تا ناوبری جدیدی آغاز شود.
این دستور یک شیء WebdriverIO.Request
را برمیگرداند که حاوی اطلاعاتی درباره
دادههای درخواست و پاسخ بارگذاری صفحه است:
interface WebdriverIO.Request {
id?: string
url: string
timestamp: number
navigation?: string
redirectChain?: string[],
headers: Record<string, string>
cookies?: NetworkCookie[]
\/**
* Error message if request failed
*\/
error?: string
response?: {
fromCache: boolean
headers: Record<string, string>
mimeType: string
status: number
},
/**
* List of all requests that were made due to the main request.
* Note: the list may be incomplete and does not contain request that were
* made after the command has finished.
*
* The property will be undefined if the request is not a document request
* that was initiated by the browser.
*\/
children?: Request[]
}
این دستور گزینههای زیر را پشتیبانی میکند:
wait
وضعیت مطلوبی که منبع درخواست شده باید قبل از اتمام دستور در آن قرار داشته باشد. این گزینه از وضعیتهای زیر پشتیبانی میکند:
none
: بعد از ارسال درخواست صفحه و دریافت پاسخ، منتظر نمیماندinteractive
: منتظر میماند تا صفحه تعاملی شودcomplete
: منتظر میماند تا درخت DOM صفحه به طور کامل بارگذاری شودnetworkIdle
: منتظر میماند تا هیچ درخواست شبکه در حال انتظاری وجود نداشته باشد
headers
سرآیندهایی که با درخواست ارسال میشوند.
پیشفرض: {}
auth
اطلاعات احراز هویت پایه.
توجه: این مقدار سرآیند موجود Authorization
را در صورت ارائه در گزینه headers
بازنویسی میکند.
timeout
اگر به یک عدد تنظیم شود، دستور قبل از بازگشت، برای مدت زمان مشخص شده به میلیثانیه منتظر بارگذاری تمام پاسخهای صفحه میماند.
توجه: برای تأثیرگذاری این گزینه، نیاز است که گزینه wait
روی networkIdle
تنظیم شده باشد.
پیشفرض: 5000
استفاده
browser.url(url, { wait, timeout, onBeforeLoad, auth, headers })
پارامترها
نام | نوع | جزئیات |
---|---|---|
url اختیاری | string | نشانی اینترنتی برای ناوبری |
options اختیاری | UrlOptions | گزینههای ناوبری |
options.wait اختیاری | 'none', 'interactive', 'networkIdle', 'complete' | وضعیت مطلوبی که منبع درخواست شده باید قبل از اتمام دستور در آن قرار داشته باشد. پیشفرض: 'complete' |
options.timeout اختیاری | number | اگر به یک عدد تنظیم شود، دستور قبل از بازگشت، برای مدت زمان مشخص شده به میلیثانیه منتظر بارگذاری تمام پاسخهای صفحه میماند. پیشفرض: 5000 |
options.onBeforeLoad اختیاری | Function | تابعی که قبل از بارگذاری تمام منابع صفحه فراخوانی میشود. این به شما امکان میدهد به راحتی محیط را شبیهسازی کنید، مثلاً APIهای وبی که برنامه شما استفاده میکند را بازنویسی کنید. |
options.auth اختیاری | {user: string, pass: string} | اطلاعات احراز هویت پایه |
options.headers اختیاری | Record<string, string> | سرآیندهایی که با درخواست ارسال میشوند |
مثالها
// navigate to a new URL
const request = await browser.url('https://webdriver.io');
// log url
console.log(request.url); // outputs: "https://webdriver.io"
console.log(request.response?.status); // outputs: 200
console.log(request.response?.headers); // outputs: { 'content-type': 'text/html; charset=UTF-8' }
// With a base URL of http://example.com/site, the following url parameters resolve as such:
// When providing a scheme:
// https://webdriver.io
await browser.url('https://webdriver.io');
// 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');
// 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();
// 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.Request>
returns
: یک شیء درخواست از بارگذاری صفحه با اطلاعاتی درباره دادههای درخواست و پاسخ