| 183 | await self._not.to_have_title(titleOrRegExp, timeout) |
| 184 | |
| 185 | async def to_have_url( |
| 186 | self, |
| 187 | urlOrRegExp: Union[str, Pattern[str]], |
| 188 | timeout: float = None, |
| 189 | ignoreCase: bool = None, |
| 190 | ) -> None: |
| 191 | __tracebackhide__ = True |
| 192 | base_url = self._actual_page.context._base_url |
| 193 | if isinstance(urlOrRegExp, str) and base_url: |
| 194 | urlOrRegExp = urljoin(base_url, urlOrRegExp) |
| 195 | expected_text = to_expected_text_values([urlOrRegExp], ignoreCase=ignoreCase) |
| 196 | await self._expect_impl( |
| 197 | "to.have.url", |
| 198 | FrameExpectOptions(expectedText=expected_text, timeout=timeout), |
| 199 | urlOrRegExp, |
| 200 | "Page URL expected to be", |
| 201 | 'Expect "to_have_url"', |
| 202 | ) |
| 203 | |
| 204 | async def not_to_have_url( |
| 205 | self, |