首页 > 解决方案 > 尝试通过 Selenium 和 Java 使用 sendKeys 时获取验证消息

问题描述

我编写了一个简单的代码来在 facebook 登录页面中输入电子邮件。但是在通过 sendKeys 输入电子邮件值时,我得到了类似“方法 sendKeys(String) 未定义类型 By”的验证。我已经检查了 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");

    }

}

我得到一个选项 Add cast to By.xpath 作为快速修复。有人可以解释一下这个的用法还是有其他可用的解决方案

标签: javaseleniumxpathcss-selectorswebdriver

解决方案


正如@KoustubhMadkaikar 和@AndiCover 所提到的,虽然添加必要的右括号 ie)将解决当前问题,但根据最佳实践,您应该tagName为您的定位器策略提供强大的功能,并且您可以使用以下任一解决方案:

  • 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");
    

推荐阅读