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

Selenium webdriver 如何从Selenium/Webdriver中的密码字段中读取值,selenium-webdriver,Selenium Webdriver,我有一个场景,在这个场景中,我想从excel中读取值并将其放入用户名和密码字段中,然后通过与excel值进行比较来验证在中输入的用户名和密码是否正确 下面是为“gmail”提供的示例代码。 HTML代码: <input type="password" name="Passwd" id="Passwd"> 获取上述代码时出错,因为密码字段没有“value”属性 请在这方面帮助我 谢谢 马赫什试试这个 System.out.println(Driver.findElement(By.i

我有一个场景,在这个场景中,我想从excel中读取值并将其放入用户名和密码字段中,然后通过与excel值进行比较来验证在中输入的用户名和密码是否正确

下面是为“gmail”提供的示例代码。 HTML代码:

<input type="password" name="Passwd" id="Passwd">
获取上述代码时出错,因为密码字段没有“value”属性

请在这方面帮助我

谢谢 马赫什

试试这个

System.out.println(Driver.findElement(By.id("Passwd")).getAttribute("value"));
通过在输入元素中键入,确保您正在将其值属性更改为文本。

请尝试一次此代码

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();

}

}

如果您想查看密码(例如在屏幕上或执行测试时),可以使用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);
JavascriptExecutor js=(JavascriptExecutor)驱动程序;
js.executeScript(“var arr=document.getElementsByTagName(\“input\”);\n”+
“对于(变量i=0;i
甚至我也做了同样的事情..,为了访问元素,我使用了PageFactory概念(pFLogin.getTxtPassword())。此外,该字段未使用“value”属性定义。请再次检查上述HTML代码。只需将HTML更改为当前。所有密码字段的输入类型仅为“password”,这是安全的。要进行测试,请在应用程序中更改它。动态我应该更改还是什么。。?。请提供有关您的解决方案的更多详细信息,谢谢
        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);