尝试通过Selenium和Java使用sendKeys时获取验证消息

时间:2019-02-23 19:53:59

标签: java selenium xpath css-selectors webdriver

我编写了一个简单的代码,以便在Facebook登录页面中输入电子邮件。但是,当通过sendKeys输入电子邮件值时,我得到了诸如“对于类型By未定义sendKeys(String)方法”的验证。我已经检查了合规版本为1.8。那么,这里出了什么问题??。下面是代码片段:

package SeleniumTests;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class OpenFacebook {
    public static void main(String[] args) {
        System.setProperty("webdriver.gecko.driver","geckodriver path");
        WebDriver driver=new FirefoxDriver();
        driver.get("http:\\facebook.com");
        driver.manage().window().maximize();
        driver.findElement(By.xpath("//[@id='email']").sendKeys("swarup.wipro@gmail.com");

    }

}

我可以选择将演员表添加到By.xpath作为快速修复。有人可以解释一下此用法吗?还是有其他可用的解决方案

3 个答案:

答案 0 :(得分:1)

如@KoustubhMadkaikar和@AndiCover所述,尽管添加必要的结束括号即 ) 将解决当前问题,但根据最佳实践,您应提供tagName为了使您的Locator Strategy更加强大,可以使用以下任一解决方案:

  • xpath

    driver.findElement(By.xpath("//input[@id='email']")).sendKeys("swarup.wipro@gmail.com");
    
  • cssSelector

    driver.findElement(By.cssSelector("input#email")).sendKeys("swarup.wipro@gmail.com");
    

答案 1 :(得分:0)

您错过了右括号),请使用:

driver.findElement(By.xpath("//[@id='email']")).sendKeys("swarup.wipro@gmail.com");

答案 2 :(得分:0)

您的代码中缺少 .sendKeys 前的右括号。 尝试以下操作:

driver.findElement(By.xpath("//[@id='email']")).sendKeys("swarup.wipro@gmail.com");