Ada*_*wek 1 c# python selenium selenium-chromedriver undetected-chromedriver
我只需要像这样从 python 启动 chromedriver :
import undetected_chromedriver as uc
from selenium import webdriver
options = webdriver.ChromeOptions()
driver = uc.Chrome()
driver.get('https://accounts.stockx.com/login')
print("Chrome started")
Run Code Online (Sandbox Code Playgroud)
我的 C# 程序有 100000 行代码,没有时间将所有内容重写为 C#。
我必须像上面显示的代码一样打开 chromedriver。我需要从 C# 代码访问此 chromedriver。我怎样才能做到这一点?
在 C# 中我只是这样做:
ChromeDriver driver;
var chromeOptions = new ChromeOptions();
driver = new ChromeDriver(chromeDriverService,chromeOptions);
Run Code Online (Sandbox Code Playgroud)
问题是:我如何通过 python 启动 chromedriver,然后从 c# 访问该驱动程序?我需要它,因为来自 python 的 chromedriver 无法被验证码检测到。感谢您的进步!
我想我可能有一个基于Selenium 的解决方案:使用 C# 连接到现有的 Chrome 浏览器,它将由 WPF 应用程序启动的 Google Chrome 浏览器连接到在另一个进程中启动的 Web 驱动程序。
\n来自博客文章:
\n\n\n主窗口:
\nRun Code Online (Sandbox Code Playgroud)\nprivate void LaunchBrowser_Click(object sender, RoutedEventArgs e)\n{\n Process proc = new Process();\n proc.StartInfo.FileName = @"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe";\n proc.StartInfo.Arguments = "https://www.intellitect.com/blog/ --new-window --remote-debugging-port=9222 --user-data-dir=C:\\\\Temp";\n proc.Start();\n}\n[
\n--remote-debugging-port论证]很关键。它告诉 Chrome 使用哪个端口进行远程调试......
\nRun Code Online (Sandbox Code Playgroud)\nChromeOptions options = new ChromeOptions();\noptions.DebuggerAddress = "127.0.0.1:9222";\n我们将 Selenium 指向调试器地址(包括端口)。现在,我们可以 \xe2\x80\x9cattach\xe2\x80\x9d 到桌面应用程序启动的 Chrome 实例。
\n
这为我们提供了在 Python 中尝试的基本模式。
\n(Python)--remote-debugging-port启动 ChromeDriver 并使用 ChromeOptions 在参数中指定:
options = webdriver.ChromeOptions()\noptions.add_argument("--remote-debugging-port=9222")\n# Port number to use in C#: ^^^^ (change to suit your needs)\ndriver = webdriver.Chrome(chrome_options=options)\nRun Code Online (Sandbox Code Playgroud)\n(C#)初始化另一个 ChromeDriver 对象,并使用与 Python 中相同的端口号指定调试器地址--remote-debugging-port:
var options = new ChromeOptions()\n{\n DebuggerAddress = "127.0.0.1:9222"\n // port number from Python: ^^^^\n};\n\nvar driver = new ChromeDriver(options);\nRun Code Online (Sandbox Code Playgroud)\n我没有尝试过这样做,但它遵循相同的基本步骤。老实说,这是一个盲目的猜测,所以如果不起作用,请随时告诉我或提出后续问题。
\n