我正在尝试使用页面对象硒从 jsp 上的 table 中提取文本

i am trying to pull text from a table on a jsp using page object selenium

所以我正在使用 selenium 页面对象,我找到了正确的行并给它一个 Id,但它一直在控制台中给我一个空指针,但我不知道什么返回 null。

这是页面,

    @FindBy(id = "status")
private WebElement confirmedEmergencySignIn;

@FindBy(className = "navbar-brand")
private WebElement dashboardLink;

public EmergenciesInListPage(WebDriver driver) {
    super(driver, PageTitle.EMERGENCYINLIST, PagePath.EMERGENCYOUTLIST);

    // COMPULSORY
    this.driver = driver;
    PageFactory.initElements(driver, this);
}

public Boolean checkEmergencySinedIn(String textToCheck) {
    return confirmedEmergencySignIn.getText().equals(textToCheck);
}

这里是selenium测试,

    @Test
public void testToShowAllUsersThatAreSignedinOnTheEmergencyList() {
    quickSignIn();
    emergencyPage = dashboardPage.clickEmergencyListLink();
    emergencyPage.clickInOutDropdown();
    emergencyPage.clickSetStatusInLink();
    assertTrue(emergenciesInListPage.checkEmergencySinedIn(STATUS_IN));
    assertTrue(isOnThisPage(PagePath.EMERGENCYINLIST));
}

这里是 Jsp 中包含 table 的部分。 table 在数据存在时自动填充,

<正文>
名字 姓氏 状态
${P.user.forenames} ${P.user.surname} ${P.status}

原因是 'status' 的 ID 超过 1 个,因为您正在循环 ${allPeople},并且 属性

@FindBy(id = "status") private WebElement confirmedEmergencySignIn;

不是集合。您需要将其设为一个集合或使 Id 唯一。