我只想在过滤器尚未打开的情况下打开它们。为此,我正在检查“应用过滤器”按钮是否可见/可点击。
令我惊讶的是,尽管该元素不是可见/可点击的,但我还是看到了它。
下面提到的按钮代码,
<div class="m-t-20 text-left filter-btn-holder ">
<input type="hidden" id="filterType" value="">
<button type="button" class="submit btn btn-primary btn-mini filter-focus" id="filterButton" onclick="javascript:getFilteredMedia(true);" "="">Filter</button>
<button type="button" class="submit btn btn-danger btn-mini" id="filterButton" onclick="clearFilter();">Reset</button>
<button type="button" class="submit btn btn-mini" data-webarch="toggle-right-side" id="closeButton"><i class="fa fa-times" aria-hidden="true"></i></button>
</div>
试图检查元素是否可点击的方法
public boolean isClickable(WebElement el)
{
try{
WebDriverWait wait = new WebDriverWait(driver, 6);
wait.until(ExpectedConditions.elementToBeClickable(el));
return true;
}
catch (Exception e){
return false;
}
}
按钮的XPath:xpath = "//button[@id='filterButton' and text()[contains(.,'Filter')]]
答案 0 :(得分:0)
尝试一下:
public boolean isClickable(WebElement el)
{
try{
WebDriverWait wait = new WebDriverWait(driver, 6);
wait.until(ExpectedConditions.elementToBeClickable(el));
return el.isDisplayed() && el.isEnabled();
}
catch (Exception e){
return false;
}
}
答案 1 :(得分:0)
请使用id = __ multiselect_mediatag的元素代替其子元素。
答案 2 :(得分:0)
尽管我没有确切地得到答案,但是找到了一些解决方法。使用javascript执行程序检查父元素类是否可见。
仍不确定为什么我可以看到不可见的元素。
JavascriptExecutor js = (JavascriptExecutor)driver;
String className = (String) js.executeScript("return document.getElementById('chat-users').getAttribute('class');");