【问题标题】:element is hidden and not clickable (but its visible)元素是隐藏的,不可点击(但它是可见的)
【发布时间】:2013-01-05 23:23:19
【问题描述】:

在编写测试时,我需要单击弹出窗口内的复选框。随着页面加载,弹出窗口被隐藏,我可以通过单击按钮使其可见。使用 Selenium 代码,我可以使用代码看到其中的弹出窗口和复选框

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),可以清楚地看到复选框是可见的,如何解决这个问题?

【问题讨论】:

  • 什么版本的 selenium 和哪个浏览器以及哪个版本会出现错误?

标签: java selenium


【解决方案1】:

尝试使用原始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()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-02
    • 1970-01-01
    • 2017-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-06
    相关资源
    最近更新 更多