Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Jasmine JS的selenium webdriver中存储一个随机值并通过单击函数调用它?_Javascript_Node.js_Selenium Webdriver_Automation_Jasmine - Fatal编程技术网

Javascript 如何在Jasmine JS的selenium webdriver中存储一个随机值并通过单击函数调用它?

Javascript 如何在Jasmine JS的selenium webdriver中存储一个随机值并通过单击函数调用它?,javascript,node.js,selenium-webdriver,automation,jasmine,Javascript,Node.js,Selenium Webdriver,Automation,Jasmine,我想保存一个介于1到31之间的随机数,并通过“单击”功能使用它,以便通过“链接文本”定位器单击保存的随机数 可能吗 我需要像这样的东西: var randomDay = Math.floor(31*Math.random() + 1); element(by.linkText(randomDay)).click(); 完整测试如下: describe('Selenium Test Case', function() { beforeEach(function(){ browser

我想保存一个介于1到31之间的随机数,并通过“单击”功能使用它,以便通过“链接文本”定位器单击保存的随机数

可能吗

我需要像这样的东西:

 var randomDay = Math.floor(31*Math.random() + 1);
 element(by.linkText(randomDay)).click();
完整测试如下:

describe('Selenium Test Case', function() {

beforeEach(function(){
    browser.ignoreSynchronization = true;
});

afterEach(function(){
    browser.ignoreSynchronization = false;
});

  it('should execute test case without errors', function() {
    var text, value, bool, source, url, title;
    var TestVars = {};
    var randomDay = Math.floor(31*Math.random() + 1);

browser.get("https://www.mywebsite.com/");
    captureScreen();
browser.driver.sleep(3000);
element(by.xpath("//div[@class='actions-row']//a[.='Schedule Now']")).click();
    captureScreen();
browser.driver.sleep(3000);
element(by.css("div.service-info")).click();
    captureScreen();
browser.driver.sleep(3000);
element(by.css("span.gray-button-style")).click();
browser.driver.sleep(3000);
element(by.linkText("Next")).click();
browser.driver.sleep(3000);
    element(by.linkText(randomDay)).click();
browser.driver.sleep(3000);
element(by.id("class=icon")).click();
browser.driver.sleep(3000);
element(by.linkText("Continue")).click();
element(by.name("email")).sendKeys("idanvcita@gmail.com");
element(by.xpath("(//textarea[@id='agenda'])[2]")).sendKeys("hello again");
element(by.linkText("Submit")).click();
element(by.linkText("Done")).click();
    captureScreen();
browser.driver.sleep(3000);
  });
});
错误如下:

describe('Selenium Test Case', function() {

beforeEach(function(){
    browser.ignoreSynchronization = true;
});

afterEach(function(){
    browser.ignoreSynchronization = false;
});

  it('should execute test case without errors', function() {
    var text, value, bool, source, url, title;
    var TestVars = {};
    var randomDay = Math.floor(31*Math.random() + 1);

browser.get("https://www.mywebsite.com/");
    captureScreen();
browser.driver.sleep(3000);
element(by.xpath("//div[@class='actions-row']//a[.='Schedule Now']")).click();
    captureScreen();
browser.driver.sleep(3000);
element(by.css("div.service-info")).click();
    captureScreen();
browser.driver.sleep(3000);
element(by.css("span.gray-button-style")).click();
browser.driver.sleep(3000);
element(by.linkText("Next")).click();
browser.driver.sleep(3000);
    element(by.linkText(randomDay)).click();
browser.driver.sleep(3000);
element(by.id("class=icon")).click();
browser.driver.sleep(3000);
element(by.linkText("Continue")).click();
element(by.name("email")).sendKeys("idanvcita@gmail.com");
element(by.xpath("(//textarea[@id='agenda'])[2]")).sendKeys("hello again");
element(by.linkText("Submit")).click();
element(by.linkText("Done")).click();
    captureScreen();
browser.driver.sleep(3000);
  });
});
失败:

 1) Selenium Test Case should execute test case without errors
   Message:
     UnknownError: java.lang.Long cannot be cast to java.lang.String
   Stacktrace:
     UnknownError: java.lang.Long cannot be cast to java.lang.String
    at new bot.Error (C:\Users\idan\AppData\Roaming\npm\node_modules\protractor\
node_modules\selenium-webdriver\lib\atoms\error.js:113:18)
    at Object.bot.response.checkResponse (C:\Users\idan\AppData\Roaming\npm\node
_modules\protractor\node_modules\selenium-webdriver\lib\atoms\response.js:106:9)



 at C:\Users\idan\AppData\Roaming\npm\node_modules\protractor\node_modules\se
lenium-webdriver\lib\webdriver\webdriver.js:377:20
    at [object Object].promise.ControlFlow.runInFrame_ (C:\Users\idan\AppData\Ro
aming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\
promise.js:1877:20)
    at [object Object].promise.Callback_.goog.defineClass.notify (C:\Users\idan\
AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\
webdriver\promise.js:2464:25)
    at [object Object].promise.Promise.notify_ (C:\Users\idan\AppData\Roaming\np
m\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.
js:563:12)
    at Array.forEach (native)
    at Object.goog.array.forEach (C:\Users\idan\AppData\Roaming\npm\node_modules
\protractor\node_modules\selenium-webdriver\lib\goog\array\array.js:203:43)
    at [object Object].promise.Promise.notifyAll_ (C:\Users\idan\AppData\Roaming
\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promi
se.js:552:16)
    at goog.async.run.processWorkQueue (C:\Users\idan\AppData\Roaming\npm\node_m
odules\protractor\node_modules\selenium-webdriver\lib\goog\async\run.js:125:21)
Error
    at [object Object].ElementArrayFinder.applyAction_ (C:\Users\idan\AppData\Ro
aming\npm\node_modules\protractor\lib\element.js:403:21)
    at [object Object].self.(anonymous function) [as click] (C:\Users\idan\AppDa
ta\Roaming\npm\node_modules\protractor\lib\element.js:76:19)
    at [object Object].self.(anonymous function) [as click] (C:\Users\idan\AppDa
ta\Roaming\npm\node_modules\protractor\lib\element.js:733:11)
    at [object Object].<anonymous> (c:\automation\tests\meeting.js:30:41)
    at C:\Users\idan\AppData\Roaming\npm\node_modules\protractor\node_modules\ja
sminewd\index.js:94:14
    at [object Object].promise.ControlFlow.runInFrame_ (C:\Users\idan\AppData\Ro
aming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\
promise.js:1877:20)
    at [object Object].promise.ControlFlow.runEventLoop_ (C:\Users\idan\AppData\
Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdrive
r\promise.js:1755:8)
    at [object Object].<anonymous> (C:\Users\idan\AppData\Roaming\npm\node_modul
es\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:2056:12)
    at goog.async.run.processWorkQueue (C:\Users\idan\AppData\Roaming\npm\node_m
odules\protractor\node_modules\selenium-webdriver\lib\goog\async\run.js:125:21)
From: Task: Asynchronous test function: it()
    at [object Object].<anonymous> (C:\Users\idan\AppData\Roaming\npm\node_modul
es\protractor\node_modules\jasminewd\index.js:93:33)
    at [object Object].<anonymous> (C:\Users\idan\AppData\Roaming\npm\node_modul
es\protractor\node_modules\minijasminenode\lib\async-callback.js:45:37)
    at [object Object].jasmine.Block.execute (C:\Users\idan\AppData\Roaming\npm\
node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:1174:1
7)
 at [object Object].jasmine.Queue.next_ (C:\Users\idan\AppData\Roaming\npm\no
de_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:2209:31)

at onComplete (C:\Users\idan\AppData\Roaming\npm\node_modules\protractor\nod
e_modules\minijasminenode\lib\jasmine-1.3.1.js:2205:18)
    at [object Object].jasmine.WaitsForBlock.execute (C:\Users\idan\AppData\Roam
ing\npm\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.j
s:2704:5)
    at [object Object]._onTimeout (C:\Users\idan\AppData\Roaming\npm\node_module
s\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:2718:12)
Error
    at [object Object].<anonymous> (c:\automation\tests\meeting.js:11:3)
    at [object Object].jasmine.Env.describe_ (C:\Users\idan\AppData\Roaming\npm\
node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:913:21
)
    at [object Object].jasmine.Env.describe (C:\Users\idan\AppData\Roaming\npm\n
ode_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:898:15)

 at describe (C:\Users\idan\AppData\Roaming\npm\node_modules\protractor\node_
modules\minijasminenode\lib\jasmine-1.3.1.js:658:27)
    at Object.<anonymous> (c:\automation\tests\meeting.js:1:63)
1)Selenium测试用例应无错误地执行测试用例
信息:
未知错误:java.lang.Long无法转换为java.lang.String
堆栈跟踪:
未知错误:java.lang.Long无法转换为java.lang.String
在新建bot时出错(C:\Users\idan\AppData\Roaming\npm\node\u modules\dragrator\
node_modules\selenium webdriver\lib\atoms\error.js:113:18)
在Object.bot.response.checkResponse(C:\Users\idan\AppData\Roaming\npm\node
_modules\dragrator\node\u modules\selenium webdriver\lib\atoms\response.js:106:9)
位于C:\Users\idan\AppData\Roaming\npm\node\u modules\dragrator\node\u modules\se
lenium webdriver\lib\webdriver\webdriver.js:377:20
位于[object object].promise.ControlFlow.runInFrame\uC:\Users\idan\AppData\Ro
aming\npm\node\u modules\dragrator\node\u modules\selenium webdriver\lib\webdriver\
允诺.js:1877:20)
在[object object].promise.Callback\uUg.goog.defineClass.notify(C:\Users\idan)处\
AppData\Roaming\npm\node\u模块\Gradutor\node\u模块\selenium webdriver\lib\
webdriver\promise.js:2464:25)
在[object object].promise.promise.notify(C:\Users\idan\AppData\Roaming\np
m\node\u modules\dragrator\node\u modules\selenium webdriver\lib\webdriver\promise。
js:563:12)
at Array.forEach(本机)
在Object.goog.array.forEach(C:\Users\idan\AppData\Roaming\npm\node\u模块
\量角器\node\u modules\selenium webdriver\lib\goog\array\array.js:203:43)
在[object object].promise.promise.notifyAll\uC:\Users\idan\AppData\Roaming
\npm\node\u modules\dragrator\node\u modules\selenium webdriver\lib\webdriver\promi
se.js:552:16)
在goog.async.run.processWorkQueue(C:\Users\idan\AppData\Roaming\npm\node\m
odules\dragrator\node\u modules\selenium webdriver\lib\goog\async\run.js:125:21)
错误
位于[object object].ElementArrayFinder.applyAction(C:\Users\idan\AppData\Ro
aming\npm\node\u modules\dragrator\lib\element.js:403:21)
在[object object].self.(匿名函数)[as click](C:\Users\idan\AppDa
ta\Roaming\npm\node\u modules\dragrator\lib\element.js:76:19)
在[object object].self.(匿名函数)[as click](C:\Users\idan\AppDa
ta\Roaming\npm\node\u modules\dragrator\lib\element.js:733:11)
在[对象]。(c:\automation\tests\meeting.js:30:41)
位于C:\Users\idan\AppData\Roaming\npm\node\u modules\dragrator\node\u modules\ja
sminewd\index.js:94:14
位于[object object].promise.ControlFlow.runInFrame\uC:\Users\idan\AppData\Ro
aming\npm\node\u modules\dragrator\node\u modules\selenium webdriver\lib\webdriver\
允诺.js:1877:20)
位于[object object].promise.ControlFlow.runEventLoop\uC:\Users\idan\AppData\
漫游\npm\node\u模块\dragor\node\u模块\selenium webdriver\lib\webdrive
r\promise.js:1755:8)
在[对象]。(C:\Users\idan\AppData\Roaming\npm\node\u模块
es\dragrator\node\u modules\selenium webdriver\lib\webdriver\promise.js:2056:12)
在goog.async.run.processWorkQueue(C:\Users\idan\AppData\Roaming\npm\node\m
odules\dragrator\node\u modules\selenium webdriver\lib\goog\async\run.js:125:21)
From:Task:Asynchronous test function:it()
在[对象]。(C:\Users\idan\AppData\Roaming\npm\node\u模块
es\dragrator\node\u modules\jasminewd\index.js:93:33)
在[对象]。(C:\Users\idan\AppData\Roaming\npm\node\u模块
es\dragrator\node\u modules\minijasminenode\lib\async callback.js:45:37)
在[object object].jasmine.Block.execute(C:\Users\idan\AppData\Roaming\npm\
node\u modules\dragrator\node\u modules\minijasminenode\lib\jasmine-1.3.1.js:1174:1
7)
在[object object].jasmine.Queue.next(C:\Users\idan\AppData\Roaming\npm\no
deu modules\dragrator\node\u modules\minijasminenode\lib\jasmine-1.3.1.js:2209:31)
完成时(C:\Users\idan\AppData\Roaming\npm\node\u modules\dragrator\nod)
e_modules\minijasminenode\lib\jasmine-1.3.1.js:2205:18)
在[object object].jasmine.WaitsForBlock.execute(C:\Users\idan\AppData\Roam
ing\npm\node\u modules\dragrator\node\u modules\minijasminenode\lib\jasmine-1.3.1.j
s:2704:5)
在[object object]。\u onTimeout(C:\Users\idan\AppData\Roaming\npm\node\u模块
s\dragrator\node\u modules\minijasminenode\lib\jasmine-1.3.1.js:2718:12)
错误
在[对象]。(c:\automation\tests\meeting.js:11:3)
在[object object].jasmine.Env.description(C:\Users\idan\AppData\Roaming\npm\
node\u modules\dragrator\node\u modules\minijasminenode\lib\jasmine-1.3.1.js:913:21
)
在[object object].jasmine.Env.description(C:\Users\idan\AppData\Roaming\npm\n
ode_modules\dragrator\node_modules\minijasminenode\lib\jasmine-1.3.1.js:898:15)
在描述(C:\Users\idan\AppData\Roaming\npm\node\u modules\dragrator\node_
modules\minijasminenode\lib\jasmine-1.3.1.js:658:27)
反对。(c:\automation\tests\meeting.js:1:63)

您似乎有铸造错误。尝试将数字作为字符串传递。

应该是这样的:

var randomDay = Math.floor(31*Math.random() + 1);
var randomDayLink = randomDay.toString(); 
element(by.linkText(randomDayLink)).click();

你贴的例子有什么问题?看起来您首先使用所需的随机数初始化变量,然后单击带有链接文本(如随机数)的元素。正是你所期望的。我知道,但它不起作用:/你得到了什么错误或异常?我已经在文章底部添加了错误,谢谢!Outlook -考虑停止使用浏览器。驱动程序。睡眠(3000),尝试更聪明的等待。示例如下: