无法使用WebDriver在文本字段中输入文本

时间:2016-08-11 23:07:26

标签: java selenium-webdriver sendkeys

我正在尝试将文本输入两个文本字段,我尝试了几乎所有元素定位器,Javascript技巧和文本只是没有输入到字段中。测试通过,但我可以看到没有输入任何文本。

我练习的网站是https://www.chegg.com/auth?action=login&redirect=http%3A%2F%2Fwww.chegg.com%2F&reset_password=0

这两个字段是电子邮件和密码字段。

这应该可行,但不是,提供代码片段:

nil

我做错了什么?

2 个答案:

答案 0 :(得分:0)

您无法找到的原因是因为定位器有多个匹配项。试着找到这样的:

WebElement emailField = driver.findElement(By.xpath("//div[@id='eggshell-7']//input[@name='email']")).sendKeys("whatever");

如果您仍然无法发送,请尝试在clear()之前发送sendkeys

答案 1 :(得分:0)

实际上,在您提供的website中,使用By.name()定位符存在两个元素,其中第一个是不可见的,第二个是可见的,您正在与页面上不可见的第一个元素进行交互。这就是为什么你遇到麻烦,你应该尝试一些不同的定位器来找到正确的元素,我建议你尝试使用By.cssSelector()如下: -

WebElement emailField = driver.findElement(By.cssSelector(".C-common-auth-signin-component input[name = 'email']"));
emailField.sendKeys("whatever");

WebElement passwordField = driver.findElement(By.cssSelector(".C-common-auth-signin-component input[name = 'password']"));
passwordField.sendKeys("whatever");