c#单击匹配结果
在youtube上搜索后,我想根据搜索结果点击与频道名称匹配的视频,但我会进行频道匹配,但我可以点击频道,而不是视频。我想要频道名称或Url当它匹配时,它的视频被打开c#单击匹配结果,c#,selenium-webdriver,C#,Selenium Webdriver,在youtube上搜索后,我想根据搜索结果点击与频道名称匹配的视频,但我会进行频道匹配,但我可以点击频道,而不是视频。我想要频道名称或Url当它匹配时,它的视频被打开 var chromeDriverService = ChromeDriverService.CreateDefaultService(); chromeDriverService.HideCommandPromptWindow = true; ChromeOptions options = new ChromeOptions()
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();
我检查了你的代码并运行了它,所以你想打开与你频道名称匹配的视频,对吗? 因此,您需要首先获取与频道名称匹配的链接,然后输入下面的代码
driver.FindElement(By.XPath("//a[@href='/watch?v=VKIiCOZ2Eo4']")).Click();
而不是
IWebElement channel = driver.FindElement(By.XPath("//*[@id=\"text\"]/a[contains(@href, '/channel/UCV1Nlv5cOSB--hEjRVo4mUA')]"));
我检查了你的代码并运行了它,所以你想打开与你频道名称匹配的视频,对吗? 因此,您需要首先获取与频道名称匹配的链接,然后输入下面的代码
driver.FindElement(By.XPath("//a[@href='/watch?v=VKIiCOZ2Eo4']")).Click();
而不是
IWebElement channel = driver.FindElement(By.XPath("//*[@id=\"text\"]/a[contains(@href, '/channel/UCV1Nlv5cOSB--hEjRVo4mUA')]"));
嗯,如果我的视频在列表的底部,也就是在滚动的底部,它将失败。而且,您提供的代码不仅与频道匹配。它只是直接找到那个视频。我想先匹配频道,然后单击视频。我是c#新手,如果你能帮我,我将不胜感激。好吧,如果我的视频在列表的底部,也就是说,在滚动的底部,它将失败。而且,您提供的代码不仅与频道匹配。它只是直接找到那个视频。我想先匹配频道,然后单击视频。我是c#的新手,如果你能帮忙,我将不胜感激。