Я разрабатываю один проект для очень чувствительного сайта.Он отслеживает много данных и делает на их основе отпечатки пальцев.Поэтому мне нужно манипулировать этими данными для работы.Например, если я хочу изменить свойство 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 будет выполняться после скриптов страницы.Поэтому, пожалуйста, помогите мне заставить его выполняться раньше других скриптов на странице.