2013-01-02 160 views
0

在編寫測試時,我需要點擊彈出框內的複選框。當頁面加載時彈出窗口被隱藏,我可以通過點擊一個按鈕來使其可見。使用硒代碼我可以使用代碼元素被隱藏並且不可點擊(但其可見)

WebElement buttonAddMembers = driver.findElementById(UserTest.Controls.UserGroup.button_to_add_members); 
     buttonAddMembers.click(); 

,但它仍然拋出錯誤元素不可見,所以無法點擊它看裏面的彈出和複選框。

List<WebElement> checkboxes = driver.findElementsByCssSelector(UserTest.Controls.UserGroup.checkboxes_add_members_popup); 
checkboxes.get(0).click(); 

我試圖pause(3000),可以清楚地看到,該複選框是可見的,如何解決這一問題?

+0

什麼版本的硒和哪個瀏覽器和哪個版本是錯誤提出? –

回答

0

嘗試使用原始Thread.sleep(1000);

這裏是美國可以驗證元素是否可見或不可見的方法:

public boolean isElementPresent(By selector) 
    { 
     return driver.findElements(selector).size()>0; 
    } 

    public boolean isElementVisible(By selector){ 
     return driver.findElement(selector).isDisplayed(); 
    } 

希望這有助於你。

WebElement buttonAddMembers = driver.findElementById(UserTest.Controls.UserGroup.button_to_add_members); 
     buttonAddMembers.click(); 
Thread.sleep(1000); 
List<WebElement> checkboxes = driver.findElementsByCssSelector(UserTest.Controls.UserGroup.checkboxes_add_members_popup); 
if(checkboxes.get(0).isDisplayed()) checkboxes.get(0).click()