Java Selenium webdriver-无法在youtube上找到元素

Java Selenium webdriver-无法在youtube上找到元素,java,selenium,youtube,webdriver,nosuchelementexception,Java,Selenium,Youtube,Webdriver,Nosuchelementexception,我正在尝试使用SeleniumWebDriverJava从YouTube建议中检索搜索结果,但出现以下错误。请帮忙 错误: 原因:org.openqa.selenium.remote.ErrorHandler$UnknownServerException:无法定位元素:{方法:类名,选择器:gssb_e} 构建信息:版本:“2.41.0”,修订版:“3192d8a”,时间:“2014-03-27 17:18:15” 系统信息:主机:'localhost',ip:'127.0.0.1',os.na

我正在尝试使用SeleniumWebDriverJava从YouTube建议中检索搜索结果,但出现以下错误。请帮忙

错误:

原因:org.openqa.selenium.remote.ErrorHandler$UnknownServerException:无法定位元素:{方法:类名,选择器:gssb_e}

构建信息:版本:“2.41.0”,修订版:“3192d8a”,时间:“2014-03-27 17:18:15” 系统信息:主机:'localhost',ip:'127.0.0.1',os.name:'Mac os X',os.arch:'x86_64',os.version:'10.9.3',java.version:'1.7.0_55' 驱动程序信息:驱动程序。版本:未知

代码

youtube建议生成的HTML:


加载URL后,尝试使用以下逻辑获取youtube搜索结果

driver.findElement(By.name("search_query")).sendKeys("Selenium WebDriver"+Keys.ENTER);
List<WebElement> search_result=driver.findElements(By.cssSelector("#results ol#search-results>li h3>a"));
for(WebElement each_result:search_result) {
   System.out.println(each_result.getAttribute("title"));
}

似乎自从编写教程以来,google已经更改了元素类名。下面的变化对我很有用

WebElement resultsDiv = driver.findElement(By.className("sbsb_a"));

你到底想如何从UI层面做到这一点?有什么原因不能使用吗?我正在尝试做一些类似于代码@的事情,这很有效,但youtube的建议不起作用。这更适合于使用web driver.YouTube甚至任何基于谷歌的网站实现自动化,但用于网站自动化却非常糟糕。我会尝试一些不同的方法,如果你只是想在一些东西上使用WebDriver。嗨,Santhosh,你能解释一下你是如何通过css选择器condition By.cssSelectorresults olsearch results>li h3>a找到元素的吗。当我在youtube上查看搜索结果时,我找不到css。感谢并感谢您的帮助。通过考虑页面中所需的元素,我们需要检查DOM,然后我们需要构造一个定位器来定位所需的元素。请参阅以下链接。
driver.findElement(By.name("search_query")).sendKeys("Selenium WebDriver"+Keys.ENTER);
List<WebElement> search_result=driver.findElements(By.cssSelector("#results ol#search-results>li h3>a"));
for(WebElement each_result:search_result) {
   System.out.println(each_result.getAttribute("title"));
}
WebElement resultsDiv = driver.findElement(By.className("sbsb_a"));
 List allSuggestions = driver.findElements(By.xpath("//li[@class='sbsb_c gsfs']"));