爲什麼量角器立即運行每行代碼?爲什麼量角器立即運行每行代碼?
所以我有一個網頁是不是寫在角度。我需要基於硒的自動化。我用硒webdriver-js代碼來打它。下面的例子。一旦你登錄,你會被帶到一個有3個問題的頁面。每次登錄時問題的順序都是隨機的。因此,您每次登錄時都不會以相同的順序得到相同的問題。
問題1)你叫什麼名字?
問題2)現在幾點了?
問題3)Wy在這裏?
每個問題的答案都是問題的最後一個字。
答案1)名稱
答案2)它
答案3)這裏
所以,我在想一個簡單的方法來解決這個問題的方法是創建一個if條件語句
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
}
等等......等等......
但是這個問題我遇到的是Protractor在它到達那個點之前立即運行if語句。在下面的示例中,控制檯會立即打印出控制檯日誌'this sucks',因爲它會立即運行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');
}
};