首页 > 解决方案 > 如何在 C# Selenium 中点击订阅 YouTube 按钮

问题描述

我正在尝试在Youtube中找到订阅按钮,然后单击它,但我无法做到这一点。

我的实际代码:

public void start()
        {
            // Initialize the instance
            driver = new ChromeDriver();
            // Navigate to the url
            driver.Navigate().GoToUrl("https://www.youtube.com/channel/UCaJBePyIsBIp4MtVFpPbtJg");
            // 1.5
            Thread.Sleep(1500);
            // Find and Click on button
            driver.FindElement(By.CssSelector(".style-scope.ytd-button-renderer.style-destructive.size-default")).Click();
        }

我尝试了两种方法:

// METHOD 1
driver.FindElement(By.CssSelector("style-scope ytd-button-renderer style-destructive size-default")).Click();
renderer').click()");


// METHOD 2
IJavaScriptExecutor jse = (IJavaScriptExecutor)driver;
jse.ExecuteScript("document.getElementById('#subscribe-button > ytd-button-renderer').click()");

标签: c#selenium

解决方案


看起来您在使用 CSS 选择器时遇到的问题是您正在尝试使用其中包含空格的类,这被解释为一组不同的类。如果您尝试,css 选择器应该可以工作(假设您列出的类是正确的)

driver.FindElement(By.CssSelector(".style-scope.ytd-button-renderer.style-destructive.size-default")).Click();

我不会使用 JavaScript 执行器进行这样的简单点击。


推荐阅读