Ошибка Selenium - невозможно перейти на неверный URL
Я получаю следующую ошибку:
unknown error: unhandled inspector error:
{"code":-32603,"message":"Cannot navigate to
invalid URL"} (Session info: chrome=29.0.1547.57) (Driver info:
chromedriver=2.2,platform=Windows NT 6.1 SP1 x86_64)
Я думаю, что это связано с Chrome Browser последней обновленной версии (29) около двух дней назад.
*Примечание:* мой хром-драйвер обновлен (2.2).
пожалуйста, дайте мне знать, что я должен сделать, чтобы это исправить.
6 ответов
Я получил ту же ошибку при использовании Selenium на Python. Предшествующий URL назначения с http://
решил мою проблему:
self.driver.get("http://"+url.rstrip())
Это происходит буквально потому, что URL-адрес, который вы передаете, использует неверный формат.
Попробуйте следующий отладочный код, где ourUrl
строка URL, к которой вы пытаетесь подключиться:
System.out.println("!!URL " +ourUrl);
driver.get(ourUrl);
для меня это было распечатка:!! URL " http://www.salesforce.com/" И проблема была в том, что вокруг URL были кавычки. В вашем случае это может быть что-то похожее. Как только вы правильно отформатируете URL, он будет работать
Если сообщение об ошибке "неверный URL", проверьте URL на веб-странице, к которой вы пытаетесь получить доступ, а затем сравните его с тем, что выводится, когда вы делаете что-то вроде:
System.out.println(url);
Когда селен пытается открыть веб-страницу, ему нужен точный URL. Он не выведет протокол передачи гипертекста (http:// или https://). Другими словами, если вы попробуете driver.get(url), а url вернет www.myurl.com, он, скорее всего, потерпит неудачу, если http или https не были добавлены.
//Append the Hyper Text Transfer Protocol to the url
driver.get("http://" + url);
Если вы получаете свои URL-адреса из списка или из файла и знаете, какой протокол используют страницы вашего сайта (http:// или https: //), вы можете сделать что-то вроде:
public static void getURLByDriverFromList(List<String> urls) {
for(List<String> url : urls) {
if(!url.contains("http://") {
url = "http://" + url;
}
driver.get(url);
}
}
Я столкнулся с этой ошибкой несколько минут назад, но я решил ее, добавив "https://" в начале URL. Надеюсь, что это работает и для вас. Удачи!
Попробуйте следующий код, он работает для меня.
WebDriver driver = new ChromeDriver();
driver.get("https://www.facebook.com");
добавлять https
в вашем URL.
Вы можете использовать абсолютный путь, как указано в других комментариях, или - если это внутренняя ссылка / кнопка в Интернете - вы можете отобразить его как WebElement
и выполнять click()
метод.
У меня была точно такая же ошибка, но это было связано с проблемой синтаксического анализа в Python Behave BDD.
Например, если у меня есть следующий синтаксис функции
Given the user is on <page> using <url>
и мой пример синтаксиса имеет
Examples: Pages
| page | url |
| Mobile App using Guide | https://www.example.com |
Посмотри, как у меня слово using
между моими переменными в given
заявление, а также используется using
в заголовке страницы Mobile App using Guide
, Из-за этого слово Guide
будет добавлен к URL-адресу, а Selenium вернет неверную ошибку URL-адреса.
Если вы используете Behave или, возможно, какой-либо BDD с синтаксисом Gherkin, не используйте одно и то же ключевое слово между переменными из операторов Given, When, Then в таблице Example.