我编写了一个简单的代码,以便在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作为快速修复。有人可以解释一下此用法吗?还是有其他可用的解决方案
答案 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");