有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在星期几文本字段中输入值

我有一个场景,需要在文本字段中发送值。值为1或0,具体取决于一周中的当前日期。在下面的场景中,我需要输入“0”表示当前日期,输入“1”表示剩余日期。我希望,由于是星期二,我会在星期二文本字段中得到“0”,但在所有文本字段中都显示为0。下面是我从sunday - tuesday开始的代码

顺便说一句:id=w_1是星期天,w-2是星期一,w_3是星期二

谢谢

public String enter0And1(String daysOfWeek) {

Calendar calendar = Calendar.getInstance();
int currentDay = calendar.get(Calendar.DAY_OF_WEEK);

WebElement sun = driver.findElement(By.id("w_1"));
    sun.sendKeys(Keys.CONTROL + "a");
    sun.sendKeys(Keys.DELETE);

    if(driver.findElement(By.id("w_1")).equals(currentDay)){
    sun.sendKeys(current_day_zero); 

    }
    else {
    sun.sendKeys(current_day_one);
    }



    WebElement mon = driver.findElement(By.id("w_2"));
    mon.sendKeys(Keys.CONTROL + "a");
    mon.sendKeys(Keys.DELETE);

    if(driver.findElement(By.id("w_2")).equals(currentDay)){
    mon.sendKeys(current_day_zero); 

    }
    else {
    mon.sendKeys(current_day_one);
    }


    WebElement tues = driver.findElement(By.id("w_3"));
    tues.sendKeys(Keys.CONTROL + "a");
    tues.sendKeys(Keys.DELETE);

    if(driver.findElement(By.id("w_3")).equals(currentDay)){
    tues.sendKeys(current_day_zero); 

    }
    else {
    tues.sendKeys(current_day_one);
    }

return daysOfWeek;



} 

星期二的HTML格式:

<tr>
<td><div width="60%" class="form_label" id="w_3_label">
Tuesday
</div>
</td>
<td><input type="text" id="w_3" onchange="calculateAvgDI()" value="" size="9" maxlength="9" name="dailyWeightGoal(tuesday)">
</td>


共 (2) 个答案

  1. # 1 楼答案

    Alecxe已经指出了你所面临的问题。你也可以尝试使用这段代码

    String day = new Date().toString().split(" ")[0]; //returns day of week as for eg. Wed
    List<WebElement> days = driver.findElements(By
            .xpath("//input[contains(@name,'dailyWeightGoal')]")); // Will get list of all input elements
    for (WebElement webElement : days) {
        if (webElement.getAttribute("name").contains(day.toLowerCase())) // since the attribute name contains day, 
                                                                        //so checking like wise according to scenario
            webElement.sendKeys("0");
        else
            webElement.sendKeys("1");
    }
    
  2. # 2 楼答案

    问题是,您试图将WebElementcurrentDayint进行比较。相反,请在getAttribute()的帮助下使用实际的输入值

    替换:

    if(driver.findElement(By.id("w_1")).equals(currentDay)){
        sun.sendKeys(current_day_zero);
    }
    else {
        sun.sendKeys(current_day_one);
    }
    

    与:

    int value = Integer.parseInt(driver.findElement(By.id("w_1").getAttribute('value'));
    sun.sendKeys(value == currentDay ? current_day_zero : current_day_one);