【问题标题】:Click on link based on text and href attribute protractor点击基于文本和href属性量角器的链接
【发布时间】:2018-03-20 02:30:52
【问题描述】:

这个问题对某些人来说可能很容易。 我想根据链接中的 href 值和文本单击链接。以下是我用来搜索链接中文本的内容。

var elementselected = this.coinDataTable.element(by.css('a[href*='+CoinLink+']'));

我尝试了下面的代码,但它不起作用。有人可以建议正确的用法吗?

var elementselected = this.coinDataTable.element(by.css('a[href*="'+CoinLink+'"][text='CoinText'));

var elementselected = this.coinDataTable.element(by.css('a[href*='+CoinLink+']')).element(by.linkText('CoinText'));

var elementselected = this.coinDataTable.element(by.linkText('CoinText')).element(by.css('a[href*='+CoinLink+']'));

此链接位于表格内。下面是整行的 HTML。此行有 2 个链接。我想选择第二个有 CoinText 的。

<tr>
<td><a href="CoinLink"><img border="0" src="../../../images/pc_cdlibrary_side_icon_img_lighterbg.gif"></a></td>
<td>1C</td>
<td>MS</td>
<td><a href="CoinLink">CoinText</a></td>
<td>$15</td>
<td>S-12 </td>
<td>B-21</td>
</tr>

【问题讨论】:

  • 为提到的链接提供HTML代码
  • @Andersson 添加了 HTML
  • @alecxe 这篇文章有什么见解吗?

标签: selenium protractor


【解决方案1】:

您可以使用by.cssContainingText 通过文本和属性查找元素:

by.cssContainingText('[href*="CoinLink"]', 'CoinText')

【讨论】:

  • 我应该在哪里指定 'a' 以在 Anchor 标签中搜索?
  • 我尝试了下面的代码,但它给了我错误消息。 CoinLink 是我在函数中传递的变量。 var elementselected = this.coinDataTable.element(by.cssContainingText('[href*="'+CoinLink+'"], "CoinText"')); 错误消息:失败:无效元素状态:无法在“元素”上执行“querySelectorAll”:“[href*="s-12"],“CoinText”不是有效的选择器。
  • 您可以根据需要添加&lt;a&gt; 标签。这不会有什么不同,因为&lt;a&gt; 应该是唯一一个带有href 的人。
  • 关于您之前的评论,您的错误很可能是由于引用。
  • 谢谢。下面的代码完美运行。 var elementselected = this.coinDataTable.element(by.cssContainingText('[href*="'+CoinLink+'"]', 'CoinText'));
【解决方案2】:

这段代码帮助我解决问题

element(by.css('a[href*="CoinLink"]')).getText()).toContain('CoinLink') 

【讨论】:

    猜你喜欢
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-25
    • 1970-01-01
    • 2014-01-22
    相关资源
    最近更新 更多