Ken*_*ith 8 javascript css-selectors nightwatch.js
我们正在使用Nightwatch自动执行一些UI测试.一些当前的测试相当脆弱,主要与奇怪的CSS选择器有关,我正在尝试简化它们.但是,我期望工作的一些简单的CSS选择器是,不是.
我正试图找到这个深层嵌套的<a>标签:
<a class="btn btn-quote btn-crm" href="/crm/" id="btnEndSession" style="display: inline-block;">End Session</a>
Run Code Online (Sandbox Code Playgroud)
这里有一些代码正在运行:
.waitForElementVisible('#quoteSummary > div > div > div > div > a:nth-child(2)', 1000)
.click('#quoteSummary > div > div > div > div > a:nth-child(2)')
Run Code Online (Sandbox Code Playgroud)
但这是一个令人讨厌的CSS选择器,我想用它替换它:
.waitForElementVisible('#btnEndSession', 1000)
.click('#btnEndSession')
Run Code Online (Sandbox Code Playgroud)
因为<a>我感兴趣的元素实际上具有id btnEndSession,所以看起来应该有效.但事实并非如此:夜间监视错误,其中一个"等待元素<#btnEndSession>在10000毫秒内可见"消息.
我也尝试过:
.waitForElementVisible('.btn-crm', 10000)
.waitForElementVisible('a[id=btnEndSession]', 10000)
.waitForElementVisible('a#btnEndSession', 10000)
Run Code Online (Sandbox Code Playgroud)
但那些也不起作用.知道为什么这些更简单的选择器没有选择元素吗?
编辑:
好吧,奇怪的是,这有效:
.waitForElementVisible('a.btn-crm', 1000)
Run Code Online (Sandbox Code Playgroud)
但是,在同一个测试中,寻找这个元素:
<select class="custom-form-control crm-result-visit select-hidden" id="crm-result-visit" name="crmResultVisit">
<option value=" ">Select</option>
<option value="Not Home">Not Home</option>
</select>
Run Code Online (Sandbox Code Playgroud)
所有这些不同的选择器都找不到元素:
.waitForElementVisible('select.crm-result-visit', 10000)
.waitForElementVisible('select#crm-result-visit', 10000)
.waitForElementVisible('#crm-result-visit', 10000)
.waitForElementVisible('.crm-result-visit', 10000)
.waitForElementVisible('select[id=crm-result-visit]', 10000)
Run Code Online (Sandbox Code Playgroud)
我有点不情愿地得出结论,夜班中的CSS选择器支持是非常错误的.
FWIW,我们正在使用0.6.7版的夜视仪.
为了它的价值,我们最终放弃了Nightwatch,直接去了Selenium(在我们的例子中为C#),后者似乎没有这些问题,并且可以更好地集成到我们的其他环境中。不是一个很好的答案,但是我不再有这个问题了:-)。
| 归档时间: |
|
| 查看次数: |
15594 次 |
| 最近记录: |