对于类型List <webelement>,方法sendKeys(String)未定义

时间:2017-05-12 02:14:47

标签: java selenium selenium-webdriver selenium-firefoxdriver

FirefoxDriver driver = new FirefoxDriver(options);

driver.get("https://www.facebook.com/");

//driver.manage().window().maximize();

driver.findElements(By.xpath("/html/body/div[3]/div[2]/div[1]/div/div/div/div/div[2]/div[2]/div/div/div/div[1]/form/div[1]/div[1]/div[1]/div[1]/div/div[1]/input")).sendKeys("Test Selenium");

这是我的编码。我收到了sendKeys()的错误。

我正在使用:

  • windows 8(64位)
  • java jdk 1.8
  • selenium 3.4.0
  • Firefox 53.0.2(64位)

我该怎么办?

3 个答案:

答案 0 :(得分:2)

driver.findElements返回List WebElements;您要做的是从该List获取单个元素,然后然后在该元素上调用sendKeys。您收到的错误是因为List<Element>没有方法sendKeys(String)

例如:

FirefoxDriver driver = new FirefoxDriver(options);
driver.get("https://www.facebook.com/");

driver.findElements(By.xpath("/html/body/div[3]/div[2]/div[1]/div/div/div/div/div[2]/div[2]/div/div/div/div[1]/form/div[1]/div[1]/div[1]/div[1]/div/div[1]/input"))
    .get(0)
    .sendKeys("Test Selenium");

答案 1 :(得分:0)

我发现您使用driver.findelements代替driver.findelement

使用后者,以便sendkeys可以正常工作。希望我已经解决了你的问题。

答案 2 :(得分:0)

初始化WebElement的局部变量,然后variable.sendkeys(String)将正常工作。 例如:

driver.findElement(By.xpath("path").sendKeys(Keys.ENTER);
//here sendkeys will give error so, here is your answer:
WebElement var = driver.findElement(By.xpath("path"));
var.sendKeys(Keys.ENTER);

它应该可以正常工作。