NightWatch - 无法在带有值的输入上找到带有xpath定位符的元素

时间:2017-10-20 09:11:04

标签: node.js selenium xpath nightwatch.js

使用夜视仪,我在页面上找到一个元素有问题,XPATH很好,因为我已经在FirePath中找到了它。

我的网页代码:

<label class="switch " data-ng-repeat="item in values">
<input class="ng-pristine ng-untouched ng-invalid ng-invalid-required" 
name="obtentionPermisConduiteAccompagneeSwitcher" value="N" ng-
model="$parent.model" ng-required="!$parent.model" required="required" 
type="radio"/>

...

我的选择器:

input_conduiteAccompagnee: {
selector: './/input[@name="obtentionPermisConduiteAccompagneeSwitcher" and @value="N"]',
locateStrategy: 'xpath'
},

我的命令:

//conduite accompagnee
onglet_conducteur.waitForElementVisible('@input_conduiteAccompagnee', 
10000);
onglet_conducteur.click('@input_conduiteAccompagnee');
browser.pause(3000);

但我有消息:

×等待元素在10000毫秒内可见时超时。 - expec 特德“可见”但得到:“不可见”

您是否已经遇到同样的问题?

2 个答案:

答案 0 :(得分:0)

我有几个问题要问 1. waitForElementVisible代码

  1. 在firepath中提供xpath时会返回多少个元素

  2. 页面上的元素是否可见,还是需要滚动?

答案 1 :(得分:0)

@ Ratnadip,

它通过XPATH返回1个元素。 但我认为你对滚动有正确的看法,因为我的元素在页面中较低..

我试过一些想法:

onglet_conducteur.getLocationInView('@select_conduiteAccompagnee', 
function(result) {
this.execute('scrollTo(result.value.x, result.value.y)');
this.execute('scrollIntoView');
});

但它不起作用。

由于