Почему Transractor запускает каждую строку кода немедленно?Почему Transractor запускает каждую строку кода немедленно?
У меня есть веб-страница, которая не написана в угловом формате. Мне нужна моя автоматизация на основе селена. Я использовал код selenium webdriver-js, чтобы поразить его. Пример ниже. После входа в систему вы попадаете на страницу с тремя вопросами. Порядок вопросов рандомизируется каждый раз при входе в систему. Таким образом, вы никогда не сможете получать одни и те же вопросы в том же порядке каждый раз, когда вы входите в систему.
Вопрос 1) Как вас зовут?
Вопрос 2) Сколько сейчас времени?
Вопрос 3) Вы здесь?
Ответы на каждый вопрос являются последним словом вопроса.
Ответ 1) Имя
ответа 2) он
Ответ 3) здесь
Так что я думал, простой способ решить эту проблему, чтобы создать, если условный оператор
var foo = browser.driver.findElement(By.id('question1')).getText();
if(foo == What is your name?) {
browser.driver.findElement(By.id('answer1')).sendKeys('name');
}
else {
blah
}
и пр. ... и т. Д.
Но эта проблема m Я нахожусь в том, что Protractor немедленно запускает оператор if до того, как он доберется до этой точки. В приведенном ниже примере консоль немедленно распечатывает журнал консоли «это отстой», потому что она выполняется через оператор if немедленно, не пройдя первые шаги, чтобы перейти на страницу, а затем проверить.
this.foo_test = function() {
console.log('starting foo test');
browser.driver.get('http://my-test-url.com/');
browser.sleep(3000);
browser.driver.findElement(By.id('login')).click();
browser.sleep(3000);
browser.driver.findElement(By.id('user')).sendKeys('user');
browser.driver.findElement(By.id('login_button')).click();
browser.sleep(3000);
console.log('getting variable');
var foo = browser.driver.findElement(By.id('question1')).getText();
console.log(foo);
if (foo == 'What was the name of your first pet?') {
console.log('this is cool');
}
else{
console.log('this sucks');
}
};