Java编译错误:WebElement无法转换为List<WebElement>如何解决?
解决Selenium中WebElement转List的类型不匹配错误
问题根源
你代码里的编译错误核心原因:
driver.findElement(By.cssSelector("li[class='ui-menu-item'] a"))仅返回单个WebElement对象- 但你试图将其赋值给
List<WebElement>类型的变量options,类型不匹配直接触发编译报错
修复方案
把driver.findElement()替换为driver.findElements()——这个方法会返回所有匹配指定选择器的元素集合,类型正好是List<WebElement>,完全适配你的变量类型。
修正后的完整代码
import java.util.List; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; public class AutoSuggestiveDropdown { public static void main (String[] args) throws Exception { System.setProperty("webdriver.chrome.driver", "C:\\Users\\HP\\Downloads\\chromedriver_win32\\chromedriver.exe"); WebDriver driver = new ChromeDriver(); driver.get("https://rahulshettyacademy.com/dropdownsPractise/"); driver.findElement(By.id("autosuggest")).sendKeys("ind"); Thread.sleep(3000L); // 替换为findElements()获取元素列表 List<WebElement> options = driver.findElements(By.cssSelector("li[class='ui-menu-item'] a")); for(WebElement option : options) { if(option.getText().equalsIgnoreCase("India")) { option.click(); break; } } } }
内容的提问来源于stack exchange,提问作者Roshan Suvarna
相关产品推荐
相关产品推荐

