2016-10-14 34 views
0

我有一個網頁xyz.com,當我第一次在網頁上登錄時,我得到一個有關閉按鈕的頁面。現在,當用戶點擊頁面上的關閉按鈕時,頁面消失,並且下次用戶登錄時,他將不會看到這個第一次頁面。Selenium-Handling單擊網頁應用程序的一次頁面

在我的selenium java代碼中,當用戶首次登錄時,我使用xpath locator來標識並單擊關閉按鈕。

現在,在我的代碼中,我需要放什麼條件來識別&點擊這個頁面的關閉按鈕,如果它獲得了頁面,否則它將跳過這個步驟並繼續進行到網頁上的處理步驟。

+0

第二次得到什麼錯誤 – khakishoiab

+0

您可以等待某個特定元素使用顯式等待條件顯示某些時刻。如果您想要的頁面/元素出現,請關閉它並繼續下一步。 –

+0

按鈕是否有唯一的名稱/ ID?如果是,請嘗試檢查頁面源並查看元素是否存在。你可以這樣做:string PageSource = Driver.PageSource; if(PageSource.Contains(expectedtext)){Driver.FindElement(By .....)。Click()} – Anand

回答

0

有幾種方法可以檢查元素是否顯示在頁面上。

1.

try { 
    webDriver.findElement(Locator locator).click(); 
catch (NoSuchElementException e) { 
    // move on 
} 

2.

WebDriverWait wait = new WebDriverWait(webDriver, timeoutInSeconds); 
try { 
    WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(Locator locator); 
    element.click(); 
catch (TimeoutException e) { 
    // move on 
} 

3.

List<WebElement> elements = webDriver.findElements(Locator locator); 
if (!elements.isEmpty()) { 
    elements.get(0).click(); 
} else { 
    // move on 
    // maybe you don't need this else block 
} 

正如你可以看到前兩個可能的實現拋出一個未經檢查的異常。如果你不想讓這些例外使用第三種。我認爲當你只是想檢查元素是否在那裏,並且你知道它沒問題時,使用第三個實現進行正常行爲是一個好習慣。