我正在尝试从网页中提取所有输入字段及其标题和元素详细信息,并将它们放入 HashMap 以供以后在 JUnit 测试中使用,例如
这是来自测试类的示例代码:
accountDetails.chooseField("Date of Birth");
accountDetails.changeValueTo(dateOfBirth);
这是页面源的一部分。我正在尝试获取标签名称为“input”的所有字段。不幸的是,在运行测试时,我收到以下硒错误:
org.openqa.selenium.NoSuchElementException:无法找到元素:** {“方法”:“标签名称”,“选择器”:“输入”}
<tbody>
    <tr>
    <tr class="subtitle">
    <tr>
    <tr class="subtitle">
    <tr>
    <tr class="subtitle">
    <tr>
    <tr>
    <td class="caption">Staff Member</td>
    <td>
    <input id="StaffMember" type="text" maxlength="6" size="6" value="" name="StaffMember">
    </td>
    <tbody>
那是提取类:
public class AccountDetails {
    WebDriver driver;
    WebElement accountDetailsTable;
    WebElement radioButton;
    HashMap<String, WebElement> fields = new HashMap<String, WebElement>();
    WebElement addCustomerButton;
    public AccountDetails(WebDriver driver) {
        this.driver = driver;
        driver.switchTo().defaultContent();
        driver.switchTo().frame(driver.findElement(By.name("officePane")));
        driver.switchTo().frame(driver.findElement(By.name("MainArea")));
        accountDetailsTable = driver.findElement(By.tagName("tbody"));
        addCustomerButton = accountDetailsTable.findElements(By.className("btn_def")).get(0);
        List<WebElement> tr = accountDetailsTable.findElements(By.tagName("tr"));
        for (WebElement el : tr) {
            List<WebElement> td = el.findElements(By.tagName("td"));
            if (td.size() > 0) {
                fields.put(td.get(1).getText(), td.get(0).findElement(By.tagName("input")));
            }
        }
    }