2017-06-14 53 views
1

我對硒很新,我想寫一個代碼,將登錄到我的網站,檢查下拉列表並點擊按鈕。 點擊該按鈕後,一個http角度請求被觸發並顯示結果。我的要求是等待響應,並檢查與硒的反應,然後從我的網站我需要添加一個等待,直到我得到來自角度http請求的響應與硒-jaD

driver = new ChromeDriver(); 

    driver.get("https://url"); 
    driver.findElement(By.id("userId")).sendKeys("USERID"); 
    driver.findElement(By.id("password")).sendKeys("PASSWORD"); 
    driver.findElement(By.id("Submit")).click(); 

    Select dropdownA = new Select(driver.findElement(By.id("mySelectA"))); 
    dropdownA.selectByValue("2"); 
    Select dropdownB = new Select(driver.findElement(By.id("mySelectB"))); 
    dropdownB.selectByValue("5"); 

    driver.findElement(By.id("findroute")).click(); 

    /***/Here i need to wait for the angular http request to reply and check for the data displayed*** 

    driver.findElement(By.id("userTemp")).click(); 
    driver.findElement(By.linkText("Logout")).click(); 
    driver.close(); 
+0

您指定了要求。你的問題是什麼? – CodeHacker

+0

我需要等待角度http請求回覆並檢查顯示的數據。數據將顯示在HTML –

回答

0

首先,讓啓動驅動程序後添加一些隱含的等待退出。現在這是缺省時間硒等待任何元素包括角度。

driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS); 

現在讓我們考慮元素A在用戶執行某些操作後出現。元素A是我的意思。現在檢查元素的存在。

driver.findElement(By.id("")); 
//Perform the required operations after finding the element 

該腳本等待角度元素出現60秒。如果現在我們將獲得元素未發現異常。

其次,,我們可以藉助明確的等待來達到同樣的效果。

WebDriverWait wait = new WebDriverWait(webDriver, timeoutInSeconds); 
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id<locator>)); 

wait.until(ExpectedConditions.elementToBeClickable(By.id<locator>)); 

希望這有助於你。謝謝。

+0

上的表格結構中如果響應不會進入timeoutInSeconds,我應該保持它爲60 WebDriverWait等待=新的WebDriverWait(驅動程序,60); –

+0

是的..你可以增加時間。隱式等待將是所有元素的默認值,但webdriver等待適用於該特定元素。 –

+0

非常感謝,工作完美 –

相關問題