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

问题描述 投票:0回答:3

我写了一个简单的代码,在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("[email protected]");

    }

}

我得到一个选项添加转换为By.xpath作为快速修复。有人可以解释这个的用法,还是有其他解决方案可用

java selenium xpath css-selectors webdriver
3个回答
0
投票

在.sendKeys尝试以下代码之前,代码中缺少结束括号:

driver.findElement(By.xpath("//[@id='email']")).sendKeys("[email protected]");

1
投票

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

  • xpathdriver.findElement(By.xpath("//input[@id='email']")).sendKeys("[email protected]");
  • cssSelectordriver.findElement(By.cssSelector("input#email")).sendKeys("[email protected]");

0
投票

你错过了关闭圆括号),使用:

driver.findElement(By.xpath("//[@id='email']")).sendKeys("[email protected]");
© www.soinside.com 2019 - 2024. All rights reserved.