使用Selenium TestNG不可见下拉元素

时间:2017-02-08 23:41:01

标签: selenium

下拉元素是不可见的,但它是启用和存在的。

我已经尝试了一切,但我没有选择。请帮忙。我的目标是单击将显示文本字段以输入字符串的下拉列表。

代码段:

    if(driver.findElements(By.xpath("//*[@id='s2id_autogen3']"))!= null){
        System.out.println("Element is Present");
    }else{
        System.out.println("Element is Absent");
    }

    if( driver.findElement(By.xpath("//*[@id='s2id_autogen3']")).isDisplayed()){
        System.out.println("Element is Visible");
    }else{
        System.out.println("Element is InVisible");
    }

    if( driver.findElement(By.xpath("//*[@id='s2id_autogen3']")).isEnabled()){
        System.out.println("Element is Enable");
    }else{
        System.out.println("Element is Disabled");
    }

输出:

元素存在 元素是InVisible 元素已启用

enter image description here

2 个答案:

答案 0 :(得分:0)

您可以让Webdriver等到所需的可见性下拉,然后单击它。请尝试关注并告诉我,是否可以解决您的问题:

WebDriverWait wait = new WebDriverWait(driver, 60);
wait.until(
            ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id='s2id_autogen3']")));

在上面的代码中,Webdriver将等待最多60秒,以使所需的下拉变为可见。如果即使在60秒后下拉不可见,它也会因超时错误而失败。

答案 1 :(得分:0)

Mahipal的答案必须奏效。其他原因可能是框架。确保下拉列表不在框架内。