无法使用 Selenium WebDriver 在 HTML 日期选择器中设置日期

问题描述 投票:0回答:1

我在尝试使用 Selenium 在日期选择器中设置日期时遇到问题。日期选择器是用 实现的,我尝试通过单击日期输入字段并发送日期值的键来模拟用户交互,但它似乎不起作用。

<div class="col-4">
   <div class="form-group ">
    <label for="textDateOfBirth" class="fw-bold form-label">Date of birth <span class="text-danger">*</span></label>
 <input type="date" class="form-control is-invalid" id="textDateOfBirth" required="" onkeydown="return false" onchange="dateFieldValiation(textDateOfBirth,'^[0-9]{4}[-][0-9]{2}[-][0-9]{2}$','patient','dateofbirth');>
     </div>
 </div>

上面的 dateFieldValiation 函数验证用户在日期字段中输入的日期。它检查该值是否与强制使用 YYYY-MM-DD 格式的指定正则表达式模式匹配。如果输入的日期有效,它将验证的日期值设置为患者对象的 dateofbirth 属性。

以下是测试方法

@Test
    public void savePatient() {
        var patientPage = loginPage.loginToApp("Admin", "12345").clickPatientPage();
        patientPage.clickPatientForm();
        patientPage.selectPatientTitle("Mr");
        patientPage.setPatientFirstName("Marhoom");
        patientPage.setPatientLastName("Manga");

        patientPage.setPatientBOD("2001-10-15");

        patientPage.selectPatientGender(2);
        patientPage.setPatientContactNo("0777267756");
        patientPage.clickPatientSaveBtn();

    }

下面是

setPatientBOD
功能

 public void setPatientBOD(String dateOfBirth){

        click(patientBOD);
        set(patientBOD, dateOfBirth);
        find(patientBOD).sendKeys(Keys.TAB);

    }

下面是我的

basePage.java
课程

public class BasePage {

    public static WebDriver webDriver;

    public  void setWebDriver(WebDriver webDriver) {
        BasePage.webDriver = webDriver;
    }

    protected WebElement find(By locator){
        return webDriver.findElement(locator);
    }

    protected void set(By locator,String text){
        find(locator).clear();
        find(locator).sendKeys(text);
    }

    protected void click(By locator){
         find(locator).click();
    }
}

当我尝试使用 setPatientBOD 方法设置日期时,日期选择器中未设置该值。此外,我无法使用浏览器的检查工具有效访问日期选择器元素。

值得注意的是,表单中的其他字段设置正确,这让我认为日期选择器的交互方式可能存在特定问题。

作为 Selenium 的新学习者,我希望获得有关如何正确与 HTML 日期选择器交互并确保正确设置日期值的任何指导或建议。谢谢!

我尝试使用 Selenium 在日期选择器中设置日期,方法是单击日期输入字段,然后发送所需的日期值(格式为 YYYY-MM-DD)。具体来说,我使用有效日期(“2001-10-15”)调用了 setPatientBOD 方法。我希望日期选择器显示所选日期并在日期字段中正确设置值。

但是,尽管执行了这些步骤,日期值似乎并未在日期选择器中设置。此外,我无法使用浏览器的检查工具有效访问日期选择器元素,这使故障排除变得复杂。

html selenium-webdriver datepicker testng
1个回答
0
投票

尝试替换这一行:

patientPage.setPatientBOD("2001-10-15");

删除“-”符号:

patientPage.setPatientBOD("20011015");
© www.soinside.com 2019 - 2024. All rights reserved.