【发布时间】:2015-09-02 14:38:11
【问题描述】:
我正在使用 Selenium + WebdriverIO 编写验收测试。 我有一些问题 - 我无法点击此链接
client.click('a[href=#admin/'+ transactionId + ']')
transactionId - 它是一个包含交易 ID 的变量。 我的 HTML 代码:
<div class="ui-data-table">
<thead>...</thead>
<tbody>
<tr><td class="tac">
<span class="tooltip" title="Transaction"><i class="icon-transaction"></i></span>
</td>
<td class="tac no-break">Today 10:23</td>
<td class="break-all"></td>
<td class="tac">
N/A
</td>
<td>Artem</td>
<td class="tac">
<span class="tooltip" title="Pending">
<i class="icon-clock"></i>
</span>
</td>
<td class="break-all">Artem Arsenowitch</td>
<td class="tac">
<a href="#admin/aceb3f65-4078-4f47-8850-95ac9135fad3"><i class="icon-arrow-circle-right"></i></a>
</td></tr>
<tr>...</tr>
<tr>...</tr>
<tr>...</tr>
<tr>...</tr>
<tr>...</tr>
<tr>...</tr>
</tbody>
</div>
每个“tr”标签的结构与您在上面看到的相同,并且“a”标签在 href 属性中具有适当的 id。 主要问题在于这段代码:
('a[href=#admin/'+ transactionId + ']')
因为它返回
(a[href=#admin/undefined])
Girish Sortur 感谢您的回答,但我发现只有一个使用此代码的解决方案:
.getAttribute("p.tac", "transaction-id")
.then(function(attr){
transactionId = attr;
transactionURL = 'a[href="#admin/'+ transactionId + '"]';
})
.click('a[href="#admin"]')
.waitForExist("div.ui-data-table", 10000).then(function(){
client.click(transactionURL)//That is working now
})
【问题讨论】:
-
不是这门语言的专家,但可以试试 client.click('a[href="#admin/'+ transactionId + '"]')
-
请添加您尝试单击的元素的 HTML(以及相关的周围 HTML)以及您用于获取和单击该元素的代码。
-
似乎这个解决方案应该可以工作,但 webdriver 返回
no such element ("a[href="#admin/undefined"]")但应该返回类似("a[href="#admin/"665f5344-b4e8-44e3-ab51-893dcf7bcec1""]")的东西 -
@Arsenowitch 你能告诉我们你是如何获得
transactionId的吗? -
.getAttribute("p.tac", "transaction-id").then(function(attr){ transactionId = attr; })
标签: javascript selenium selenium-webdriver webdriver-io webdriverjs