javascript - 如何使用量角器在表格中定位单元格
问题描述
我想使用量角器在桌子上找到航班号(11302)。然后单击插入同一行的按钮。
<kendo-grid-list role="presentation" class="k-grid-container ng-star-inserted">
<!---->
<div role="presentation" tabindex="-1" class="k-grid-content k-virtual-content">
<div role="presentation" class="k-grid-table-wrap">
<table role="presentation" class="k-grid-table">
<colgroup kendogridcolgroup="" role="presentation">
<col style="width: 40px;" class="ng-star-inserted">
<col style="width: 90px;" class="ng-star-inserted">
<col style="width: 120px;" class="ng-star-inserted">
<col style="width: 120px;" class="ng-star-inserted">
<col style="width: 50px;" class="ng-star-inserted">
<col style="width: 100px;" class="ng-star-inserted">
</colgroup>
<tbody kendogridtablebody="" role="presentation">
<tr kendogridlogicalrow="" data-kendo-grid-item-index="0" role="row" class="ng-star-inserted" style="">
<td kendogridcell="" kendogridlogicalcell="" role="gridcell" aria-selected="false" data-kendo-grid-column-index="0" colspan="1" aria-colindex="1" class="ng-star-inserted">
<button _ngcontent-wqs-c341="" kendobutton="" look="flat" icon="plus-circle" class="k-button-icon k-button k-primary k-flat ng-star-inserted" role="button" aria-disabled="false" aria-pressed="false" dir="ltr"><span _ngcontent-wqs-c341="" class="k-icon k-i-plus-circle ng-star-inserted" role="presentation"></span></button>
</td>
<td kendogridcell="" kendogridlogicalcell="" role="gridcell" aria-selected="false" data-kendo-grid-column-index="1" colspan="1" aria-colindex="2" class="ng-star-inserted">
<a _ngcontent-wqs-c341="" href="/admin/manifest-detail/27513" class="ng-star-inserted"> 11302</a>
<br _ngcontent-wqs-c341="" class="ng-star-inserted">
<span _ngcontent-wqs-c341="" title="" class="ng-star-inserted">Open </span>
</td>
<td kendogridcell="" kendogridlogicalcell="" role="gridcell" aria-selected="false" data-kendo-grid-column-index="2" colspan="1" aria-colindex="3" class="ng-star-inserted">
07:00 AM<br _ngcontent-wqs-c341="" class="ng-star-inserted"> Midland, MI
</td>
我尝试使用 by.css 来定位元素,如下图所示
let temp2 = element(by.css(".k-grid-container .data-kendo-grid-item-index='0' .data-kendo-grid-column-index='1'")).element(by.tagName('a'));
到目前为止,我无法找到航班号所在的单元格,而不是单独单击按钮。
解决方案
我尝试了另一种方法,这是代码
element.all(by.tagName('tbody')).first().then(function(_table) {
return _table.element(by.tagName('tr')).filter(function(_tableRow) {
return _tableRow.element.all(by.tagName('td')).get(1).then(function(_tableCell) {
let tmp = _tableCell.element(by.tagName('a'));
return expect(tmp.getText()).toContain("11302");
});
}).first().element(by.tagName('button')).click();
});
我在页面上总共有 3 个表格('tbody'),包含航班号的单元格的索引始终为 1。但它失败了,报告是
- 失败:protractor_1.element.all(...).first(...).then 不是函数
推荐阅读
- python - 我如何使用for循环继续添加数字
- javascript - 从 codepen 导出时,此 javascript 将不起作用。代码必须在一页中运行
- c - 将 C 变量的值赋给 bash 变量
- c# - 如何以精确的间隔发送数据包
- jenkins-pipeline - 管道正在与多分支管道工作相同的项目不工作
- c# - 为什么不从包含另一个程序集错误的内部抽象方法的类继承?
- android - 使用 WallpaperService 根据用户选择的频率设置壁纸
- android - 在excel中复制具有范围的行公式
- python - 如何添加延迟或等待 print() 。(Python)
- javascript - 类上的 Greasemonkey 脚本更改值(乘法)