Как изменить геолокацию драйвера селен хрома в Python? - PullRequest
0 голосов
/ 14 декабря 2018

Я пытаюсь обмануть хромедривер, чтобы он поверил, что он работает в другом городе.В обычных условиях это легко сделать вручную, как показано на быстрой диаграмме

Here

Затем, когда поиск в Google будет выполнен, будут использованы новые координаты и результаты, которыеобычно происходит из этого места отображаются.Вы можете подтвердить, что это сработало, когда вы посмотрите внизу страницы поиска Google, как показано

Here.

Однако Selenium может контролировать только то, что отображает браузер, а не браузер всам.Я не могу сказать Selenium автоматически нажимать кнопки, необходимые для изменения координат.Я попробовал решения, опубликованные здесь , но это не относится к Python, и даже после того, как я попытался адаптировать скрипт, ничего не произошло.

Есть ли аргумент browser.execute_script ()это может сработать, или это неправильный способ изменить геолокацию?

Ответы [ 2 ]

0 голосов
/ 11 апреля 2019

В поисках решения той же проблемы я также наткнулся на уже постет сценарии.Хотя решение еще не найдено, я предполагаю, что сценарии не работают, поскольку они не меняют датчики постоянно.Датчики заменяются только для этого конкретного вызова window.navigator.geolocation.getCurrentPosition.

Сайт (в данном случае Google) позже будет вызывать ту же функцию, но с обычной (неизменной) геолокацией.Рад услышать решения по постоянной замене датчиков, чтобы затем влиять на будущие запросы геолокации.

0 голосов
/ 14 декабря 2018

Попробуйте этот код ниже:

driver.execute_script("window.navigator.geolocation.getCurrentPosition=function(success){"+
                                        "var position = {\"coords\" : {\"latitude\": \"555\",\"longitude\": \"999\"}};"+
                                        "success(position);}");

    print(driver.execute_script("var positionStr=\"\";"+
                                    "window.navigator.geolocation.getCurrentPosition(function(pos){positionStr=pos.coords.latitude+\":\"+pos.coords.longitude});"+
                                    "return positionStr;"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...