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

标签 java selenium xpath css-selectors webdriver

我编写了一个简单的代码来在 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");

    }

}

作为快速修复,我获得了将强制转换添加到 By.xpath 的选项。有人可以解释一下它的用法或者有其他可用的解决方案

最佳答案

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

  • xpath:

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

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

关于java - 尝试通过 Selenium 和 Java 使用 sendKeys 时获取验证消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54845593/

相关文章:

c# - 从 C# NUnit 在多个浏览器中依次运行 Selenium 测试

php - 使用PHP和XPath进行屏幕抓取

xpath - 带有通配符的 SoapUI XPath 断言

java - 如何在 JSTL 中打印出数组对象的索引

java - 如何在 Java 中将值返回到变量中

java - 相同的:没有输出

java - 使用 Selenium Java 单击 Instagram 中的关注按钮

java - 带有游戏图片和说明的 Facebook Feed 对话框如下

python - 通过 id、类名等以外的方式查找元素

java - 测试 Selenium Jenkins