c# - 如何在 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()");
解决方案
看起来您在使用 CSS 选择器时遇到的问题是您正在尝试使用其中包含空格的类,这被解释为一组不同的类。如果您尝试,css 选择器应该可以工作(假设您列出的类是正确的)
driver.FindElement(By.CssSelector(".style-scope.ytd-button-renderer.style-destructive.size-default")).Click();
我不会使用 JavaScript 执行器进行这样的简单点击。
推荐阅读
- java - Spring MVC - 更改页面时丢失数据
- ruby-on-rails - 没有路线匹配 [POST] "/users/1"
- php - 变量不会通过 URL 传递给 PHP
- ui-automation - 为什么我必须在 Windows 上运行自动化测试用例?
- javascript - 有没有办法重新定义 Javascript charCodeAt 和 fromCharCode 从函数中调用的标准 Ascii 字符集?
- python-3.x - 如何根据 AUC 指标在 Keras 中保存最佳模型?
- ios - 如何从 iOS 10 及更低版本的 WKWebView 获取 cookie?
- c# - ASP.Net Core MVC - 部分视图的身份验证上下文不同?
- android - IIS 和 Apache Content-Type 标头... IIS 只接受一个,Apache 接受多个
- python - 如何在数据框 python 中使用时间戳查找值