Как нажать на кнопку подписки на YouTube в C # Selenium - PullRequest
1 голос
/ 28 апреля 2019

Я пытаюсь найти кнопку подписки в 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()");

Ответы [ 2 ]

2 голосов
/ 28 апреля 2019

Похоже, что проблема, с которой вы сталкиваетесь с вашим селектором CSS, заключается в том, что вы пытаетесь использовать класс с пробелами в нем, который интерпретируется как набор отдельных классов. Селектор css должен работать (при условии, что класс, который вы перечислили правильно), если вы попытаетесь

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

Я бы не использовал JavaScript-исполнителя для простого клика, такого как этот.

0 голосов
/ 28 апреля 2019

У вас неправильный селектор CSS. И попробуйте использовать селектор xpath.

driver.FindElement(By.XPath("//*[@id=\"subscribe-button\"]/ytd-button-renderer/a")).Click();

Это должно работать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...