为什么Gmail密码字段无法使用" sendkeys"在Selenium Webdriver(Java)?

时间:2016-11-04 07:53:06

标签: javascript java selenium selenium-webdriver

收到错误"元素不可见"在代码下面运行。

当我通过谷歌检查并进行一些调查时,发现密码随附了"密码隐藏"属性。我怎么摆脱这个。

driver.get("http://www.gmail.com");
driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);
try{
driver.findElement(By.xpath("//input[@id='Email']")).sendKeys("ashwinxxxxx@gmail.com");
        driver.findElement(By.xpath("//input[@id='next']")).click();
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
 driver.findElement(By.xpath("//div[2]/div/div/input[2]")).sendKeys("abcd2123");
        driver.findElement(By.xpath("//input[@id='signIn']")).click();
    }
    catch (Throwable e)
    {
        System.out.println(e.getMessage());    }
 }

3 个答案:

答案 0 :(得分:2)

尝试使用id查找元素,如下所示:

WebElement element1 = driver.findElement(By.id("Passwd"));
element1.sendKeys("Password");

如果失败,请发布收到的异常或错误。

WebDriverWait wait = new WebDriverWait(driver, 15);
WebElement element1 = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("Passwd")));
element1.sendKeys("Password");

答案 1 :(得分:0)

明确的等待工作。

WebDriverWait wait = new WebDriverWait(driver,30);
        WebElement element1 = wait.until(
                ExpectedConditions.elementToBeClickable(By.id("Passwd")));
        element1.sendKeys("xxxxxx");

要导入的类是:

import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.WebDriverWait;

答案 2 :(得分:0)

我使用了WebDriver等,并将“定位器”改为“id'到' xpath'

WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement MyPass = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(".//*[@id='password']/div[1]/div/div[1]/input")));
MyPass.sendKeys("Password");