如何从Selenium / Webdriver中的密码字段读取值

时间:2013-10-07 05:18:07

标签: selenium-webdriver

我有这样的场景,我想从excel中读取值并输入用户名和密码字段,稍后要通过与Excel值比较来验证输入的用户名和密码是否正确。

以下是w.r.t给“gmail”的示例代码。 HTML代码:

<input type="password" name="Passwd" id="Passwd">

Webdriver代码:

Driver.driver.get("https://www.gmail.com");
Driver.driver.findElement(By.name("Passwd")).sendKeys("mahesh");
    System.out.println(Driver.pFLogin.getTxtPassword().getAttribute("value"));

获取上述代码的错误,因为密码字段没有“value”属性

请帮助我......

由于 马赫什

3 个答案:

答案 0 :(得分:2)

试试这个,

System.out.println(Driver.findElement(By.id("Passwd")).getAttribute("value"));

确保通过键入输入元素,您将其value属性更改为文本。

答案 1 :(得分:0)

尝试此代码一次

File sr=new File("File path");
    //load file
    FileInputStream fis=new FileInputStream(sr);
    //load workbook
    XSSFWorkbook wb=new XSSFWorkbook(fis);
    XSSFSheet wsh=wb.getSheetAt(0);
    //read data
    String s1=wsh.getRow(0).getCell(0).getStringCellValue();
    String s2=wsh.getRow(0).getCell(1).getStringCellValue();
    String s3=wsh.getRow(0).getCell(2).getStringCellValue();
    System.out.println(s1+" "+s2+" "+s3);
    Thread.sleep(3000); 
    fis.close();
    WebDriver d1=new FirefoxDriver();
    d1.get("website url");
    d1.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
    Thread.sleep(10000);
    d1.findElement(By.xpath("//*[@id='username']")).sendKeys(s2);
    d1.findElement(By.xpath("//*[@id='password']")).sendKeys(s3);
    d1.findElement(By.xpath("xpath of the element")).click();
    Thread.sleep(3000);
    d1.close();


    FileInputStream fs=new FileInputStream("file path");
    Workbook wb1=WorkbookFactory.create(fs);
    Sheet sh=wb1.getSheetAt(0);
    Row row=sh.createRow(row value);
    //Write data
    Cell cell=row.createCell(cell value);
    cell.setCellType(Cell.CELL_TYPE_STRING);
    cell.setCellValue("ravi");
    FileOutputStream fos=new FileOutputStream("file path");
    wb1.write(fos);
    fos.close();

}

}

答案 2 :(得分:0)

如果要查看密码(例如在屏幕上或在执行测试时),可以使用JSexecutor。

        JavascriptExecutor js = (JavascriptExecutor) driver;
    js.executeScript("var arr = document.getElementsByTagName(\"input\");\n" +
            "for (var i = 0; i < arr.length; i++) {\n" +
            "    if (arr[i].type == 'password') arr[i].setAttribute('type','text');\n" +
            "}");

    String password = fPassword.getAttribute("value");
    logger.debug("pass:" +password);