我需要点击一个自选菜单,并使用量角器js选择一个由primefaces组成的项目。
这是我的代码:
it ('should pesquisa', function () {
browser.get('localhost:8080/myapp/geral.xhtml');
var agruparPorFocus = element(protractor.By.xpath('//div[@id="form-pesquisa:consultarPor_panel"]/div/ul/li[4]')).click();
var agruparPorInput = element(protractor.By.id('form-pesquisa:consultarPor_input'));
});
我得到了一个错误:
ElementNotVisibleError: Element is not currently visible and so may not be interacted with
Build info: version: '2.45.0', revision: '5017cb8', time: '2015-02-26 23:59:50'
System info: host: 'Lilian-fx', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '3.13.0-53-generic', java.version: '1.8.0_45'
Driver info: driver.version: unknown
Stacktrace:
ElementNotVisibleError: Element is not currently visible and so may not be interacted with
Build info: version: '2.45.0', revision: '5017cb8', time: '2015-02-26 23:59:50'
System info: host: 'Lilian-fx', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '3.13.0-53-generic', java.version: '1.8.0_45'
Driver info: driver.version: unknown
at Array.forEach (native)
Error
at [object Object].<anonymous> (/home/lilian-fx/workspace/protractor/fwLite/spec.fwl.js:60:115)
at runMicrotasksCallback (node.js:337:7)
From: Task: Asynchronous test function: it()
Error
at [object Object].<anonymous> (/home/lilian-fx/workspace/protractor/fwLite/spec.fwl.js:49:2)
at Object.<anonymous> (/home/lilian-fx/workspace/protractor/fwLite/spec.fwl.js:5:1)
Finished in 17.565 seconds
5 tests, 4 assertions, 1 failure
这就是HTML代码
<div class="ui-helper-hidden-accessible">
<input id="form-pesquisa:consultarPor_focus" name="form-pesquisa:consultarPor_focus"
autocomplete="off" type="text">
</div>
<div class="ui-helper-hidden-accessible">
<select id="form-pesquisa:consultarPor_input" name="form-pesquisa:consultarPor_input"
tabindex="-1" onchange="PrimeFaces.ab({s:'form-pesquisa:consultarPor',e:'change',p:'form-pesquisa:consultarPor'});">
<option value="1">
Meia Hora
</option>
<option value="2" selected="selected">
Dia
</option>
<option value="3">
Mês
</option>
<option value="4">
Ano
</option>
</select>
</div>
<label style="width: 335px;" id="form-pesquisa:consultarPor_label" class="ui-selectonemenu-label ui-inputfield ui-corner-all">
Dia
</label>
<div class="ui-selectonemenu-trigger ui-state-default ui-corner-right">
<span class="ui-icon ui-icon-triangle-1-s ui-c">
</span>
</div>
<li class="ui-selectonemenu-item ui-selectonemenu-list-item ui-corner-all"
data-label="Meia Hora">
Meia Hora
</li>
<li class="ui-selectonemenu-item ui-selectonemenu-list-item ui-corner-all ui-state-highlight"
data-label="Dia">
Dia
</li>
<li class="ui-selectonemenu-item ui-selectonemenu-list-item ui-corner-all"
data-label="Mês">
Mês
</li>o
</li>o
</li>
<li class="ui-selectonemenu-item ui-selectonemenu-list-item ui-corner-all"
data-label="Ano">
Ano
</li>
有人能帮忙吗?
发布于 2015-08-10 18:10:56
问题日志的第一行本身告诉您正在发生什么。
ElementNotVisibleError: Element is not currently visible and so may not be interacted with
意味着量角器无法找到与之交互的元素。这可能是因为经过一段时间后,浏览器上的元素可能是可见的(可能是由于某些AJAX调用)。
我建议您实现一种等待,这样您就可以等待特定的时间,直到元素可见,然后访问它。
我从来没有使用过量角器,但一个快速搜索告诉我,您可以使用ExpectedConditions来实现这一点。
下面是一个很好的链接,它告诉您如何使用ExpectedConditions实现自定义等待(称为显式等待)。
https://sqa.stackexchange.com/questions/14226
复制