在量角器中选择多个链接
Selecting Multiple links in protractor
我想知道当您不知道链接的数量时,是否有办法在量角器中选择多个链接。 目前,我有一个包含多个(数量未知)链接的表格,我必须选择(单击并移动页面),然后经历一系列过程才能完成我正在编写的测试:
<table border="0" class="bodyTable">
<tbody><tr class="a">
<th>Name</th>
<th>Description</th></tr>
<tr class="b">
<td><a href="Link3">Link1</a></td>
<td>-</td></tr>
<tr class="a">
<td><a href="Link3">Link2</a></td>
<td>-</td></tr>
<tr class="b">
<td><a href="Link3">Link3</a></td>
<td>-</td></tr>
<tr class="a">
<td><a href="Link4">Link4</a></td>
<td>-</td></tr>
</tbody>
问题是(我正在异步使用量角器,因为这是一个非 Angular 应用程序),由于链接后面的页面大多相同,我如何在不重写大量代码的情况下选择未知列表中的每个元素。
我以前的方法是围绕计算表中的 tr 并启动一系列循环,但这很笨拙,而且只是糟糕的代码:
//something like this
elements(by.tagName('tr')).count().then(function(numberOfTRs) {
for(int i = 1; i <= numberOfTRs; i++)
elements(by.tagName('tr')).get(i);
});
但是,承诺在页面加载后继续存在,当然会产生错误。 应该有一种方法可以等待(不使用browser.sleep(...)),但是我不确定该怎么做。 通常我会研究这个问题,但我什至不知道要搜索什么(我猜"白痴绑在设计之外使用量角器"会出现很多)。
提前感谢...
编者按:
理想的函数将以这种方式工作
element(whatever).all(listsoflinks).someFunction(function (elementToUse, index) {
//...do stuff....
//....return to page....
});
我能找到的最接近的东西是"Each"函数,但它因错误而崩溃:
Failed: Element not found in the cache - perhaps the page has changed since it was looked up For documentation on this error, please visit: http://seleniumhq.org/exceptions/stale_element_reference.html Build info: version: '2.48.2', revision: '41bccdd', time: '2015-10-09 19:59:12' System info: host: 'BAHCND4397GQF', ip: '10.138.1.15', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_72' Driver info: driver.version: unknown
因此,很明显,当页面更改发生时,该功能正在"失去"其立足点
我在"每个"函数中放了一个计数器(控制台.log),当然,它会飞过,就好像它不是承诺的一部分......
如何将链接收集到一个数组中,遍历数组并导航到每个 URL:
$$("table.bodyTable tr td a").getAttribute("href").then(function(links) {
for(int i = 0; i <= links.length; i++) {
browser.get(links[i]);
// do smth
}
});
相关文章:
- 根据选项卡内部的文本链接中的哈希ID动态选择jqueryUI选项卡
- 如何利用多链接延迟检查并显示ping结果,然后使用JavaScript选择最快的URL
- 传单:如何在弹出窗口中创建链接选择器
- 使用jquery.chained.min.js链接选择不起作用
- 链接选择的问题
- jQuery UI链接选择菜单.单击按钮时窗体将重置
- 在链接选择上使用jQuery添加/删除类
- 下拉列表中的链接选择不起作用的IE8 / 9打开下拉选择链接,警报有效
- CKEditor + 插件链接选择框
- 单击“链接”选择值并提交表单
- 带有jquery/php/database的链接选择框不起作用
- 使用KnockoutJS链接选择列表
- 由于某种原因,Jquery链接选择器不起作用
- 链接选择的选择
- JQuery /脏表单/窗口.Onbeforeunload仅在链接选择后触发
- 用Angular JS链接选择
- 如何在没有jQuery的情况下在Javascript中链接选择器
- 如何设置多链接选择按钮的样式
- 具有多个数组的链接选择框
- 链接选择与Cakephp和ajax