C# AddScriptToEvaluationNewDocument Selenium(不工作)
我需要在C#Net中执行AddScriptToEvaluationOnNewDocument方法。在对文档执行任何其他Javascript之前,我基本上需要先执行Javascript。这是我的密码: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.
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您找到方法了吗?我也对这个感兴趣