2015-09-09 2 views
0

Пытается nodejs и webdriverio в первый раз. Кажется, это довольно простой материал, когда вы пытаетесь использовать камни watir-webdriver или selenium-webdriver, но это путает меня в webdriverio. Почему я получаю эту ошибку, когда водитель уже найти элемент и установить значениеwebdriverio бросает элемент не видно ошибки после настроек его значение

var webdriverio = require('webdriverio'); 
var options = { 
desiredCapabilities: { 
browserName: 'firefox' 
} 
}; 
var client=webdriverio.remote(options); 

client 
.init() 
.url('http://www.twitter.com').title(function(err, res) { 
console.log('Title was: ' + res.value); 
}) 
.isExisting('#signin-password') 
.then(function(isExisting){ 
    console.log(isExisting); 
}) 
.setValue('#signin-password','password') 
.then(function(){ 
    console.log("password set"); 
}) 
.isExisting('#signin-email') 
.then(function(isExisting){ 
    console.log("email"+isExisting); 
}) 
.setValue('#signin-email','username') 
.then(function(){ 
    console.log("username set"); 
}); 

Ошибка я получаю

Title was: Welcome to Twitter - Login or Sign up 
true 
RuntimeError: Element is not currently visible and so may not be interacted with 
Build info: version: '2.47.1', revision: '411b314', time: '2015-07-30 03:03:16' 
System info: host: 'DTNBNAUD10806XS', ip: '10.36.179.144', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_05' 
Driver info: driver.version: unknown 
    at elementIdValue("1", "password") -  at C:\Development\node_modules\webdriverio\lib\commands\setValue.js:52:7 

ответ

1

Если вы используете isExisting, вы получите только возвращаемое значение boolean. Чтобы добавить немного большей стабильности в тест, я рекомендую использовать waitForExist или waitForVisible в случае, если DOM по-прежнему загружается

0

Вероятно потому, что существует элемент на веб-странице, но невидимый.

Вместо isExisting, использование isVisible.

Другая причина может быть то, что у вас есть более чем один элемент, селектор #signin-password находки, а первый элемент, который находится не видны. Я не говорю, что это ваша проблема, но это случилось со мной в некоторых случаях.

Вы можете попытаться использовать более подробный селектор, например #myForm #signin-password, чтобы убедиться, что вы пытаетесь установить значение в правильный элемент.

 Смежные вопросы

  • Нет связанных вопросов^_^