selenium: ManagedPromise::32 {[[PromiseStatus]]: "pending"} 导航到页面之前显示的消息

2023-12-08

我尝试了以下 selenium-webdriverJS 代码:

var webdriver = require('selenium-webdriver');
var browser = new webdriver.Builder().usingServer().withCapabilities({'browserName': 'chrome' }).build();


browser.get('http://localhost:1091/WebTours/sample.html');
var btn = browser.findElement(webdriver.By.id('show-coordinates'));
browser.sleep(3000);
var ids = btn.getAttribute("id");
console.log("attributes: " + ids); //expecting to run after above lines.
browser.quit();

预期的:导航到给定的 URL,找到元素,然后打印属性id如下:

attributes: show-coordinates

Actual:在导航到 URL 本身之前,打印attributes:并附有以下消息:

attributes: ManagedPromise::32 {[[PromiseStatus]]: "pending"}

环境:

Windows 7 - 64 bit
selenium-webdriver (installed using `npm install selenium-webdriver`)
ChromeDriver
Chrome

您需要使用以下方法从返回的承诺中提取值then();

所有 webdriver 命令都会返回一个承诺作为承诺管理器的一部分。这使您能够编写

driver.findElement(By.css('#searchBar')).clear();
driver.findElement(By.css('#searchBar')).sendKeys('hello');
driver.findElement(By.css('#searchButton')).click();

不必像这样链接它们:

driver.findElement(By.css('#searchBar')).clear().then(function() {
  driver.findElement(By.css('#searchBar')).sendKeys('hello').then(function(){
    driver.findElement(By.css('#searchButton')).click();
  });
})

But getAttribute()与许多 Webdriver JS 命令一样,返回一个值。在这种情况下,您需要注册一个承诺回调来提取该值。所以你的代码变成:

browser.get('http://localhost:1091/WebTours/sample.html');
var btn = browser.findElement(webdriver.By.id('show-coordinates'));
browser.sleep(3000);
var ids = btn.getAttribute("id").then(function(promiseResult){
  console.log("attribute is: " + promiseResult);
});
browser.quit();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

selenium: ManagedPromise::32 {[[PromiseStatus]]: "pending"} 导航到页面之前显示的消息 的相关文章

  • 最小工作聚合物示例

    我一直在尝试使用 Polymer 获得一个极其简单的网页 以便在浏览器中简单地呈现 我在服务器端使用 Node ExpressJS Jade 设置 我的代码与 Polymer 文档附带的示例非常接近 我认为我缺少一些非常简单的东西 我正在使
  • 通过 Javascript 不断查询服务器 - 好主意吗?

    我有一个小型网站 大约有 5 到 10 名管理员 我已将其设置为监视每个管理员正在执行的操作 添加项目 删除项目等 我的管理面板中有一个列表 显示了集体管理部门之前执行的 10 项活动 今天 我决定每 30 秒进行一次自我更新 我的问题很简
  • 跟踪 HTML5 音频元素的播放次数?

    跟踪 HTML5 音频元素播放次数的最佳方法是什么 我们也可以使用 Google Analytics 如果这是最好的方法 HTML5 音频元素有基本的回调 https developer mozilla org En Using audio
  • 没有 ssl 的 Web 加密 API

    我编写了一个用于安全消息传输的小网络应用程序 以了解有关加密的更多信息 并想向我的朋友展示它并让他们玩一下 所以我将它托管在我的小服务器上 并惊讶地发现 Web Crypto API 我竭尽全力开始工作 因为它的错误消息不是很具体 需要 S
  • 防止Rails Turbolinks导致Google地图JS多次执行

    我目前正在开发 Rails 应用程序 但出现以下错误 您已在此页面上多次包含 Google Maps API 这可能会导致意外错误 经过一番研究后 我发现 Turbolinks 导致了这个问题 当 的时候link to单击后 Google
  • 关闭模态后清除模态字段

    我有这个模式
  • 如何在javascript中解压二进制文件?

    我正在尝试将一些现有代码从 python 移植到 javascript 并且不确定如何处理以下行 var1 var2 struct unpack
  • Material UI Drawer设置背景色

    如何简单设置Material UI的背景色Drawer 尝试过这个 但不起作用
  • JavaScript 按属性删除对象数组中的元素

    我有一个以下形式的对象数组 prop1 value1 banks id value property2 value2 所以我想要做的是通过搜索 id 值来删除 banks 属性中的元素 然后从banks数组中删除找到的元素 id 属性具有唯
  • 在 Node js 应用程序中加载backbone.js

    我正在使用node js 和backbone 来构建网络应用程序 Backbone 是我的软件包要求的一部分 我之前使用过 Rails 和 Backbone 辅助 gem 非常适合将需要到达客户端的所有资产 js 文件 拼凑在一起 话虽如此
  • 如何使用 JQuery 提取嵌套 HTML 中的文本?

    我这里有 HTML 代码 div class actResult style border solid table tbody tr td Order Number td td 1 td tr tr td Customer Number t
  • Electron 包 - 如何写入/读取文件

    我有文件test txt在我的应用程序根目录中 当我使用命令运行我的应用程序时npm start 我可以毫无问题地写入我的文件 但是当我使用电子打包器制作包时 不再可能将文本写入我的文件 我收到错误 Error EACCES permiss
  • Express.js“app.use()需要中间件功能”

    我正在学习 Express js 4 和 Node 但遇到了一个我无法弄清楚的错误 我正在尝试使用 node sass 包来编译我的 sass 代码 但我无法启动并运行它 这是我的主文件的精简版本 var express require e
  • 为什么onClick下一个视频函数,使用YouTube JavaScript Player API,质量下降到默认?

    我在 CodeIgniter 上遇到了这个问题 使用 next video API 函数 单击按钮时新视频的质量比以前的低 所以基本上第一个视频始终处于我建议的质量 而下一个始终处于默认质量 On my template我有这个div di
  • jQuery 将所有 href="" 替换为 onclick="window.location="

    所以我有一个很酷的给你 我需要在渲染时扫描我的 html 文档并替换每个 href with onclick window location 不仅如此 我还需要将链接从 href 带到 window location 例如 如果我有 hre
  • 将复杂对象传递给 ui-sref 参数

    我需要这样的构建网址 列表 过滤器 状态 1 过滤器 类型 2 I do link a List a 在参数中传递复杂对象 如果传递简单对象 filter 1 可以 但我需要这个 state state list url list filt
  • 删除数组中的重复元素[重复]

    这个问题在这里已经有答案了 可能的重复 在 JavaScript 数组中查找重复值的最简单方法 https stackoverflow com questions 840781 easiest way to find duplicate v
  • pm2 start app.js 在 15 次重启后退出

    npm start 会很好地启动我的应用程序 但是当我这样做时 pm2 start app js I get PM2 Spawning PM2 daemon PM2 PM2 Successfully daemonized PM2 Proce
  • 使用 JavaScript 更改网址栏中的域名

    有没有办法使用window history pushState或者任何其他js函数来更改地址栏中的整个url 我无法删除根部分 上下文 我的应用程序位于 Heroku 上 网址如下所示http mywebsite herokuapp com
  • Google 地图 v3 信息窗口在地图视口外打开

    如果单击地图视口顶部附近的标记 信息窗口将加载到可视区域之外 并且必须拖动地图才能查看信息窗口内容 理想情况下 我不希望地图自动平移 有没有办法以不同的方向加载信息窗口 例如如果标记位于视口的顶部 则以向下的方向显示信息窗口 不 你不能以不

随机推荐

  • 禁用 Laravel 中的日志记录?

    是否有任何全局配置选项来禁用所有日志记录 我的意思不仅仅是禁用错误记录 我的意思是在调用 Log 时实际上禁用写入文件 如果您不想写入日志文件 您可以简单地注释掉文件中的以下行start global php Log useFiles st
  • 如何在java中使用LinkedHashMap从sql server数据库填充下拉列表

    在 SQL Server 数据库中 我有一个表 其中包含三列 即 Ref Name Ref from 和 Ref to 现在我想要一个下拉列表来按行保存值 即该行的所有列值应按以下方式位于下拉列表中 参考 1 2014 10 10 07 1
  • PostGIS 中的缓冲区(圆形)

    我必须扩展普通的 GeoJSON 格式以添加一些不受支持的多边形 例如圆 type Circle radius 0 001 coordinates 5 417075157165527 43 29129488122568 这是一个例子 坐标标
  • Doctrine2 在复合主键中映射具有复合外键的实体

    我有一个有很多表的模型 但在本例中我们只需要三个 关键是 1 的复合主键也是外键 复合脚趾 Symfony 抛出此异常 MappingException 无法映射实体 你的 SomethingBundle Entity Empleado 使
  • 如何将执行延迟到 os.system 完成之后?

    我在用os system将文件从一个系统复制到另一个系统 一个非常简单的程序的逻辑是在复制该文件后执行另一组命令 问题是os system实际上并不等待文件被复制 而是开始执行下一行 这会导致系统出现问题 我实际上可以通过提供一些等待功能t
  • 将 setHours 设置为零在 NodeJs 中不起作用

    我正在尝试获取当前日期进行比较并将时间设置为零但仍然有时间 var today new Date new Date setHours 0 0 0 0 var todaynew today toISOString console log to
  • 如何将 JSON 响应映射到自定义类对象

    我正在使用 C 调用 APIUnirest io 我得到以下 JSON 响应 如响应体 persons id a010 name Joe subjects Math English id b020 name Jill subjects Sc
  • 使用模态窗口或弹出窗口打开表单

    对此我有些挣扎 我有一个数据表表单 其中列出了每条记录的 ID 和其他信息 到目前为止 我已经找到了一些 VBA 代码 它将每个 ID 作为超链接打开并将其传递到另一个表单中 我遇到的问题是我希望在弹出窗口或模式窗口中打开表单 到目前为止我
  • 如何在 JSF 中的 EL 表达式 #{ } 中写入硬编码字符串值?

    我正在尝试执行以下操作 rendered billBean company equals something 但问题是我不会写 something inside 它会导致以下 XML 解析错误 元素类型 h commandLink 后面必须
  • 指定 jar 的类路径

    我正在尝试配置 JAR 的类路径 以便我的 ResourceBundle 可以从中获取属性文件 如果我从 class 文件运行它并指定 cp标记它工作正常 并且System err println System getProperty ja
  • Android 和 IOS 上的 Qt 会话管理

    我目前正在使用 Qt Quick Controls 2 开发一个适用于 Android 和 IOS 的应用程序 该应用程序可以登录 帐户凭据将存储到外部 SQL 数据库中 我已经弄清楚如何与数据库交互 但我无法弄清楚如何在 Android
  • 是否可以等待未声明为异步的 IO 操作?如果没有,我该怎么办?

    我是 C 异步编程的新手 但我仍然对一些事情感到困惑 我读到 在 NET 4 5 之后 不再推荐 APM 和 EAP 用于新开发 因为 TAP 应该取代它们 source 我想我了解 async await 的工作原理 并且我能够使用它们来
  • 垂直居中、高度未知、页面上的其他内容

    好吧 这基本上是常见的 如何使用 CSS 垂直居中 问题 但有一些问题 没有 JavaScript 仅限 HTML 和 CSS 只要当今的浏览器能够很好地支持 CSS3 就可以了 该元素的内容以及高度都是未知的 它可能是几十到几百像素 将来
  • iOS GCD 自定义并发队列执行顺序

    我对这个问题有疑问 根据苹果公司的文件 同时 并发队列 也称为全局调度队列的一种 同时执行一个或多个任务 但任务仍按照添加到队列的顺序启动 当前正在执行的任务在由调度队列管理的不同线程上运行 在任何给定点执行的任务的确切数量是可变的 并且取
  • Bash:从最大列递归地将一行写入文件

    链接回我之前的问题 我发现问题并没有完全解决 问题是这样的 我有名为RUN1 RUN2 and RUN3每个目录都有一些文件 目录RUN1有文件mod1 1 csv mod1 2 csv mod1 3 csv 目录RUN2有文件mod2 1
  • 如何在 JavaScript 函数调用中预先设置参数? (部分功能应用)

    我正在尝试编写一个 JavaScript 函数 它将返回其第一个参数 函数 并将其所有其余参数作为该函数的预设参数 So function out a b document write a b function setter setter
  • ANT 使用具有属性的文件替换指定文件中的字符串

    我在文件 dev properties 中有一个属性 它们看起来像这样 test url https www example com 在项目文件中有一个令牌 test url 我想将其替换为https www example com 我只想
  • 使用 React Router v4 进行身份验证后导航到页面

    我正在尝试在身份验证成功后从 login js 导航到 app js 我可以使用 router v3 和 browserhistory 相对轻松地完成此操作 我不太确定如何使用 router v4 导航页面 因为它们的方法似乎非常不同 而且
  • Turbo 汇编语言光标位置、偏移量

    我们已发出指示 使文本 CSC 112 1 居中 我使用了DB指令和偏移量 这是我的代码 model small stack data c db 10 13 10 13 10 13 db 10 13 db 10 13 db 10 13 db
  • selenium: ManagedPromise::32 {[[PromiseStatus]]: "pending"} 导航到页面之前显示的消息

    我尝试了以下 selenium webdriverJS 代码 var webdriver require selenium webdriver var browser new webdriver Builder usingServer wi