在youtube上搜索后,我想根据结果单击与频道名称匹配的视频,但是我进行了频道匹配,但是我可以单击频道,而不是视频。我想要频道名称或网址匹配时,将打开其视频。
var chromeDriverService = ChromeDriverService.CreateDefaultService();
chromeDriverService.HideCommandPromptWindow = true;
ChromeOptions options = new ChromeOptions();
options.AddUserProfilePreference("profile.default_content_setting_values.images", 2);
options.AddArgument("start-maximized");
options.AddArgument("disable-infobars");
options.AddArgument("--disable-extensions");
var driver = new ChromeDriver(chromeDriverService, options);
driver.Navigate().GoToUrl("https://www.youtube.com/");
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromMilliseconds(1500));
var elementsWithSearchID = wait.Until((driver) => driver.FindElements(By.Id("search")));
var search = elementsWithSearchID.Where(e => e.TagName == "input").FirstOrDefault();
search.SendKeys("Hello\n");
Thread.Sleep(2000);
IWebElement channel = driver.FindElement(By.XPath("//*[@id=\"text\"]/a[contains(@href, '/channel/UCV1Nlv5cOSB--hEjRVo4mUA')]"));
channel.Click();
答案 0 :(得分:0)
我检查了您的代码并运行了它,因此您想打开与您的频道名称匹配的视频,对吗? 因此,您需要先选择与您的频道名称匹配的链接,然后在下面的代码中放置该链接。
ZORDER
代替
driver.FindElement(By.XPath("//a[@href='/watch?v=VKIiCOZ2Eo4']")).Click();