Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# AddScriptToEvaluationNewDocument Selenium(不工作)_C#_.net_Selenium - Fatal编程技术网

C# AddScriptToEvaluationNewDocument Selenium(不工作)

C# AddScriptToEvaluationNewDocument Selenium(不工作),c#,.net,selenium,C#,.net,Selenium,我需要在C#Net中执行AddScriptToEvaluationOnNewDocument方法。在对文档执行任何其他Javascript之前,我基本上需要先执行Javascript。这是我的密码: using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.

我需要在C#Net中执行AddScriptToEvaluationOnNewDocument方法。在对文档执行任何其他Javascript之前,我基本上需要先执行Javascript。这是我的密码:

    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    using OpenQA.Selenium;
    using OpenQA.Selenium.Chrome;
    using OpenQA.Selenium.Interactions;

    namespace User
    {
        class Program
        {
            //public static IWebDriver driver = new ChromeDriver();
            public static IWebDriver driver;

            public static double magnification = 2;
            static void Main(string[] args)
            {
                ChromeOptions options = new ChromeOptions();
                //options.AddArgument("Page.addScriptToEvaluateOnNewDocument");
                options.AddArgument("--window-size=1920,1080");
                options.AddUserProfilePreference("Page.addScriptToEvaluateOnNewDocument", "alert('INJECTED SCRIPT')");

                driver = new ChromeDriver(options);

                var action = new OpenQA.Selenium.Interactions.Actions(driver);

                System.Threading.Thread.Sleep(1000);
                driver.Navigate().GoToUrl("https://google.com");
                System.Threading.Thread.Sleep(10000);
            }
         }
     }

但是警报没有被触发(除了警报,我还尝试了其他JavaScript代码-似乎什么都不起作用)

试试这个。初始化驱动程序后。希望这能起作用

  driver.ExecuteJavaScript("alert(0);")


试试这个。在初始化驱动程序后。希望这能起作用

  driver.ExecuteJavaScript("alert(0);")


我只在Python中完成了这项工作,但它应该以同样的方式工作

chromedriver应该公开一个名为
execute\u cdp\u cmd()的函数
在运行页面JavaScript之前,您可以使用它来运行JavaScript。请参见下面的python示例。请注意,您应该在创建驱动程序之后添加下面显示的代码,但在获取网页之前添加

driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
  "source": """
    alert(0);
  """
})

我没有C#示例,但这可能会有所帮助。

我只在Python中完成了这项工作,但它应该以同样的方式工作

chromedriver应该公开一个名为
execute\u cdp\u cmd()的函数
在运行页面JavaScript之前,您可以使用它来运行JavaScript。请参见下面的python示例。请注意,您应该在创建驱动程序之后添加下面显示的代码,但在获取网页之前添加

driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
  "source": """
    alert(0);
  """
})

我没有一个C#示例,但这可能会有所帮助。

它不会在页面上的其他脚本之前执行脚本。它只是在所有本机脚本完成工作后执行您的脚本。此外,它不会在页面上的所有iFrame上执行脚本(page.addScriptToEvaluationOnNewDocument就是这样做的)@Phantom您找到方法了吗?我对此也很感兴趣,因为它不会在页面上的其他脚本之前执行脚本。它只是在所有本机脚本完成工作后执行您的脚本。此外,它不会在页面上的所有iFrame上执行脚本(page.addScriptToEvaluationOnNewDocument就是这样做的)@Phantom您找到方法了吗?我也对这个感兴趣