如何为按钮显示if语句?

时间:2016-08-23 14:49:08

标签: selenium

我的页面上有一个按钮,有时无法显示。我想让我的代码绕过它,但它不能与driver.findElement.isDisplayed()一起使用。我在考虑ExpectedConditions.elementToBeClickable,但我不知道如何使它成为布尔值。有些帮助吗?(当然,条件是返回错误,因为它不是布尔值)。

WebDriverWait wait = new WebDriverWait(driver, 10);
        if(ExpectedConditions.elementToBeClickable(By.xpath("html//body//div[5]//div//div//form//div//div[1]//div[3]//div//div//div//input")).){
            WebElement ex = driver.findElement(By.xpath("//*[@class='ng-pristine ng-untouched ng-valid'][@value='export'][@type='radio']"));
            ex.click();
            WebElement in = driver.findElement(By.xpath("html//body//div[5]//div//div//form//div//div[1]//div[3]//div//div//div//input"));
            in.click();
        }else{new WebDriverWait(driver, 10).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("html//body//div[5]//div//div//form//div//div[1]//div[3]//div//div//div//input")));}

'

1 个答案:

答案 0 :(得分:1)

findElement返回元素或抛出NoSuchElementException,因此确定元素是否可见if条件您应该尝试使用findElements而不是因为它返回WebElement列表或空列表,所以你只需检查size如下: -

List<WebElement> elements = driver.findElements(By.xpath("your xpath"));

//Now check it size
if(elements.size() > 0 && elements.get(0).isDisplayed())
{
   WebElement element = elements.get(0);
  //Now do your further stuff with this element 
}