gpt4 book ai didi

javascript - 无法在 grails 应用程序中使用 selenium 检索文本框文本

转载 作者:行者123 更新时间:2023-12-02 15:48:28 24 4
gpt4 key购买 nike

我目前正在尝试为我公司的 grails 应用程序进行自动化测试。我在 javascript 中使用 Selenium 。问题是我需要检查是否生成了带有值的表单,但是每当我尝试检查该值时,它都会给我一个很长的错误。这是应该工作的代码:

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 }

它是用户单击按钮时出现的模式的一部分。我的猜测是这与它有关,但我不知道。

我到处搜索,似乎找不到解决方案。如果您对此有任何见解,请告诉我。

最佳答案

原来我对 getAttribute 返回的内容有错误的理解。它实际上返回一个 promise ,然后您需要捕获然后输出。像这样:
driver.findElement(By.xpath("//*[@id='manual-order-mail-from-name']")).getAttribute("value").then(function (success) {console.log("this is the text" + success);}, function(e) {console.log("this was the error" + e);});

关于javascript - 无法在 grails 应用程序中使用 selenium 检索文本框文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43483312/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com