Ошибка 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.

Другие вопросы по тегам