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