Я хочу подражать геолокации от Chromedriver - PullRequest
0 голосов
/ 29 мая 2019

Я хотел протестировать программу на chromedriver с поддельной координатой GPS, и я сделал это так, как разработчики - дополнительные инструменты - датчики, настроили «перезапись геолокации». Вопрос в том, что программа не работает. Кто-нибудьесть идея, чтобы помочь?


from selenium import webdriver
from selenium.webdriver import ChromeOptions
from config.settings import BASE_PATH
import os


class FakeLocation(object):

    def __init__(self):
        chromeOptions = webdriver.ChromeOptions()
        chromeOptions.add_argument("proxy-server=http://127.0.0.1:1087")
        prefs = {
            'profile.default_content_setting_values':
                {
                    'notifications': 1,
                    'geolocation': 1
                },
            'devtools.preferences': {
                'emulation.geolocationOverride': "\"11.111698@-122.222954:\"",
            },
            'profile.content_settings.exceptions.geolocation':{
                'BaseUrls.Root.AbsoluteUri': {
                    'last_modified': '13160237885099795',
                    'setting': '1'
                }
            },
            'profile.geolocation.default_content_setting': 1

        }

        chromeOptions.add_experimental_option('prefs', prefs)
        chromedriver_path = os.path.join(BASE_PATH, 'utils/driver/chromedriver')
        log_path = os.path.join(BASE_PATH, 'utils/driver/test.log')
        self.driver = webdriver.Chrome(executable_path=chromedriver_path, chrome_options=chromeOptions, service_log_path=log_path)

    def run(self):
        self.driver.get("file:///Users/a/Desktop/location.html")

if __name__ == "__main__":
    obj = FakeLocation()
    obj.run()

Я ожидаю, что вывод геолокации переопределится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...