Javascript 日期选择器上的selectValue不起作用

Javascript 日期选择器上的selectValue不起作用,javascript,ios,ipad,ui-automation,ios-ui-automation,Javascript,Ios,Ipad,Ui Automation,Ios Ui Automation,我正在使用UIAutomation测试我们的应用程序。我想做的是:在日期选择器上选择一个随机日期,在今天之前的任何一天(同一年)。我已经得到了一个随机的月和日值。这是我的密码: var currDate = new Date(); var year = currDate.getFullYear(); var month = new Array; month[0] = "January"; month[1] = "February"; month[2] = "March"; month[3] =

我正在使用UIAutomation测试我们的应用程序。我想做的是:在日期选择器上选择一个随机日期,在今天之前的任何一天(同一年)。我已经得到了一个随机的月和日值。这是我的密码:

var currDate = new Date();
var year = currDate.getFullYear();
var month = new Array;
month[0] = "January";
month[1] = "February";
month[2] = "March";
month[3] = "April";
month[4] = "May";
month[5] = "June";
month[6] = "July";
month[7] = "August";
month[8] = "September";
month[9] = "October";
month[10] = "November";
month[11] = "December";


var setMonthInt = currDate.getMonth();
var day = currDate.getDate();

var randomMonth = Math.floor((Math.random() * (setMonthInt + 1 - 0)) + 0);
var valueAtIndex = "\"" + month[randomMonth] + "\"";

if (randomMonth == setMonthInt){
    var randomDay = "\"" + Math.floor((Math.random() * (day)) + 1) + "\"";
} else {
    var randomDay = "\"" + Math.floor((Math.random() * (32)) + 1) + "\"";
}

this.window().popover().pickers()[0].wheels()[1].selectValue(valueAtIndex);
this.window().popover().pickers()[0].wheels()[0].selectValue(randomDay);
我已经检查了
valueAtIndex
变量是否返回一个月,例如“三月”,而
randomDay
变量是否返回一天,例如“9”

只要我使用
selectValue()
方法,仪器就会抛出一个错误:
-selectValue需要一个有效的值。

setValue()
方法也不起作用


我将如何告诉选取者生成随机的月份和日期?

从我在互联网上找到的其他答案来看,似乎你不需要在月份和日期前后使用“\”

请看这里:

最近我在UI自动化方面做了很多工作,但我还没有使用选择器,所以我可能错了。在我等待测试完成的时候,我会再仔细研究一下

这可能也有帮助:


似乎是这样的,UIADatePicker删除了UIAPickerWheel类的一些功能,这是因为有很多可能。因此,如果直接选择日期不起作用,请使用tapWithOffset方法,然后检查值。

我设法弄清楚它是什么。添加
“\”
是不必要的。所以我又创建了两个变量

var randomDayToString=randomDay.toString();

var randomnothtostring=valueAtIndex.toString();

我使用这两个值来选择日期和月份

this.window().popover().pickers()[0].wheels()[1].selectValue(randomMonthToString);

this.window().popover().pickers()[0].wheels()[0].selectValue(randomDayToString);


这似乎很好。

我认为这一行
Math.floor((Math.random()*(32))+1)
可以返回32作为可能的一天。32*.99四舍五入是31+1是32。也许这就是导致错误的原因?@Braains这不是问题,32没有包含在返回值中