2017-01-15 5 views
1

Я пытаюсь получить доступ к глобальным переменным, используя webdriver с javascript.У selenium javascript webdriver есть доступ к глобальным переменным javascript?

мой код:

this.Then(/^I read global var$/, function (selectedElement) { 
    readGlobalVar(window.location.href); 
}); 

function readGlobalVar(varName){ 
return varName; 
} 

ошибка: ReferenceError: окно не определено

ответ

1

Код работает на узле, а не в браузере, когда вы передаете window.location.href к вашей readGlobalVar функции она не потому что window не определен.

Если то, что вам нужно ждать, пока URL не соответствует определенному значению, вы должны рассмотреть until.urlMatches

+0

Спасибо, я хочу иметь доступ к глобальным переменным, а не href, в частности, некоторым, которые характерны для моего приложения. – ClausI

0

Предполагая, что вы используете this module ...

JS среда выполнения Узла и среду выполнения JS браузера вы контролируете Selenium разные. Они не разделяют переменные между ними. Вы общаетесь между ними, передавая сообщения через webdriver.

Чтобы прочитать переменную с загруженной страницы, вам необходимо использовать execute method, чтобы передать некоторые JS на страницу.

browser.execute(function() { 
    return window.location.href; 
}).then(function (result) { 
    console.log(result.value); 
}); 
+0

thx, нет webdriverio из-за некоторых проблем с интеграцией cucumberjs. – ClausI

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