我在stackoverflow上找到了这个selenium自动化代码。
我试图运行该程序。它给出了一个错误:
无法找到元素:{"方法":"类名","选择器":" gssb_e"}
我检查了该页面上的一些网页元素,看看我是否会找到班级名称gssb_e。但我没有找到任何。我想修改或更新类名,但我不确定该示例尝试访问的是什么。能帮忙吗?
WebDriver driver = new FirefoxDriver();
// Go to the Google Suggest home page
driver.get("http://www.google.com/webhp?complete=1&hl=en");
// Enter the query string "Cheese"
WebElement query = driver.findElement(By.name("q"));
query.sendKeys("Cheese");
// Sleep until the div we want is visible or 5 seconds is over
long end = System.currentTimeMillis() + 5000;
while (System.currentTimeMillis() < end) {
WebElement resultsDiv = driver.findElement(By.className("gssb_e"));
// If results have been returned, the results are displayed in a drop down.
if (resultsDiv.isDisplayed()) {
break;
}
}
答案 0 :(得分:1)
TL; DR:使用更好的位置策略和明确的等待。
当我手动执行相同操作时,我看不到具有gssb_e
类名的元素。
id="search"
的元素变为可见:
WebDriverWait wait = new WebDriverWait(driver, timeOut);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("search")));
换句话说,与您使用的gssb_e
类名称相比,Google搜索结果页面上有更多可靠,更符合逻辑且更简单的内容,可以告诉您结果已准备就绪且可见