Выполнить js для имитации свойства навигатора - PullRequest
0 голосов
/ 07 октября 2018

Я разрабатываю один проект для очень чувствительного сайта.Он отслеживает много данных и делает на их основе отпечатки пальцев.Поэтому мне нужно манипулировать этими данными для работы.Например, если я хочу изменить свойство navigator.platform, мне нужно выполнить

Object.defineProperty(navigator,"platform",{get:function(){return ""},set:function(t){}});

Проблема состоит в том, чтобы выполнить этот сценарий, пока другие сценарии не будут выполнены на веб-странице.

using (var driver = new ChromeDriver(path, options))
{
    driver.Manage().Window.Size = new Size(1200, 2300);

    driver.Url = "https://browserleaks.com/javascript";

        driver.ExecuteScript("Object.defineProperty(navigator,\"platform\",{get:function(){return\"\"},set:function(t){}});");

    try
    {
        driver.Navigate().GoToUrl("https://browserleaks.com/javascript");
        WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));

        wait.Until(d => d.FindElement(By.XPath("//*[@id=\"localeString\"]")).Text != String.Empty);
    }
    catch
    {
        Console.WriteLine("Times out");
    }
    driver.GetScreenshot().SaveAsFile($"screens/{DateTime.Now.Minute}{DateTime.Now.Second}.png", ScreenshotImageFormat.Png);
}

В приведенном выше примере кода код js будет выполняться после скриптов страницы.Поэтому, пожалуйста, помогите мне заставить его выполняться раньше других скриптов на странице.

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