【发布时间】:2018-07-19 10:18:54
【问题描述】:
我正在尝试从Youtube 的列表中单击一首歌曲。
我会尽量让事情变得简单而不共享我的所有课程,但仍会向您展示我正在使用的元素。
IwebDriver _webdriver = new ChromeDriver();
_webdriver.Navigate().GoToUrl("https://www.youtube.com/");
var element = wait.Until(x => x.FindElement(By.Id("search")));
element.SendKeys("Perfect");
var element = wait.Until(x => x.FindElement(By.CssSelector("#search-icon-legacy>yt-icon")));
element.Click();
var content = wait.Until(x => x.FindElement(By.Id("contents")));
var songHREF = content.FindElements(By.CssSelector("#video-title"));
songHREF[2].Click();
所以,发生的主要事情是 90% 的运行,songHREF 将点击实际位于主页而不是“结果”页面上的对象(歌曲链接)。
剩下的 10% 只是失败了。它没有找到songHREF 元素(元素不可见)。
【问题讨论】:
标签: c# selenium selenium-webdriver css-selectors webdriverwait