0

对于 Selenium RC 中的随机数生成,我有代码,但它在 Webdriver 中无法正常工作。如果我在 webdriver 中使用下面的代码,它会返回 null。请在 webdriver 中找到以下代码

String Randnum = (String) ((JavascriptExecutor) driver).executeScript("var d=new Date().getFullYear()+new Date().getDate().toString()" +
            "+new Date().getDay()" +
            "+new Date().getHours()" +
            "+new Date().getMinutes()" +
            "+new Date().getSeconds()" +
            "+new Date().getMilliseconds()");

请帮助我解决这个问题......我们将不胜感激。

4

3 回答 3

1

您缺少 return 语句。没有,javascript 将运行但不返回任何内容。

String Randnum = (String) ((JavascriptExecutor) driver).executeScript("return new Date().getFullYear() + new Date().getDate().toString() + new Date().getDay() + new Date().getHours() + new Date().getMinutes() + new Date().getSeconds() + new Date().getMilliseconds()");
于 2012-12-11T09:14:29.497 回答
1

为什么你不能用 Java 尝试同样的事情?

Calendar currentDate = Calendar.getInstance();
SimpleDateFormat formatter= new SimpleDateFormat("MM_dd_yyyy_hh_mm_ss");
String randomName = formatter.format(currentDate.getTime());
于 2012-12-11T09:22:23.353 回答
0

下面的javascript代码

function displayRandum()
{

     var d = new Date().getFullYear()+new Date().getDate().toString() + new Date().getDay() + new Date().getHours()+new Date().getMinutes() + new Date().getSeconds()+new Date().getMilliseconds();
     alert(d);

}

完美运行。您可以尝试在您的 Selenium 代码中,将所有内容都放在一行中(没有额外的“+”和“字符)。

编辑:(错过了返回声明。看到 Arran 的回复并意识到它)。

function returnRandum()
{

     var d = new Date().getFullYear()+new Date().getDate().toString() + new Date().getDay() + new Date().getHours()+new Date().getMinutes() + new Date().getSeconds()+new Date().getMilliseconds();
     return d;

}
于 2012-12-11T08:30:15.020 回答