我目前正在尝试为我的公司的Grails应用程序进行自动化测试。我在JavaScript中使用硒。问题是我需要检查一个表单是否有值生成,但每当我尝试检查值时,它都会给我一个很长的错误。下面是应该工作的代码:无法检索在grails应用程序中使用硒的文本框文本
console.log(
driver.findElement(
By.xpath("//*[@id='manual-order-mail-from-name']")
).getAttribute("value")
);
,我试图让该元素是在这里:
<input
type="text"
class="form-control input-sm mail-from-input valid"
name="mailFromName"
id="manual-order-mail-from-name"
placeholder="Name"
required=""
aria-required="true"
aria-invalid="false">
,这里是错误消息:
ManagedPromise {
flow_:
ControlFlow {
propagateUnhandledRejections_: true,
activeQueue_:
TaskQueue {
name_: 'TaskQueue::709',
flow_: [Circular],
tasks_: [Object],
interrupts_: null,
pending_: null,
subQ_: null,
state_: 'new',
unhandledRejections_: Set {} },
taskQueues_: Set { [Object] },
shutdownTask_: null,
hold_:
Timeout {
_called: false,
_idleTimeout: 2147483647,
_idlePrev: [Object],
_idleNext: [Object],
_idleStart: 461,
_onTimeout: [Function],
_timerArgs: undefined,
_repeat: 2147483647 } },
stack_:
{ Task: WebElement.getAttribute(value)
at thenableWebDriverProxy.schedule (/Users/takeshi/WebstormProjects/Regression/node_modules/selenium-webdriver/lib/webdriver.js:816:17)
at WebElementPromise.schedule_ (/Users/takeshi/WebstormProjects/Regression/node_modules/selenium-webdriver/lib/webdriver.js:1921:25)
at WebElementPromise.getAttribute (/Users/takeshi/WebstormProjects/Regression/node_modules/selenium-webdriver/lib/webdriver.js:2171:17)
at /Users/takeshi/WebstormProjects/Regression/TEST-11.js:43:92
at ManagedPromise.invokeCallback_ (/Users/takeshi/WebstormProjects/Regression/node_modules/selenium-webdriver/lib/promise.js:1384:14)
at TaskQueue.execute_ (/Users/takeshi/WebstormProjects/Regression/node_modules/selenium-webdriver/lib/promise.js:3092:14)
at TaskQueue.executeNext_ (/Users/takeshi/WebstormProjects/Regression/node_modules/selenium-webdriver/lib/promise.js:3075:27)
at asyncRun (/Users/takeshi/WebstormProjects/Regression/node_modules/selenium-webdriver/lib/promise.js:2935:27)
at /Users/takeshi/WebstormProjects/Regression/node_modules/selenium-webdriver/lib/promise.js:676:7
at process._tickCallback (internal/process/next_tick.js:103:7) name: 'Task' },
parent_: null,
callbacks_: null,
state_: 'pending',
handled_: false,
value_: undefined,
queue_: null }
这是用户点击按钮时出现的模式的一部分。我的猜测是这与它有关,但我不知道。
我查遍了所有,似乎无法找到解决方案。如果您对此有所了解,请告诉我。