Selenium CSS选择器:visible不是有效的选择器

caa*_*os0 4 css selenium xpath

我正在使用页面对象来映射页面中的元素,类似于:

public class MyPage {

    protected WebDriver driver;

    @FindBy(css = "a[data-code=panel]:visible")
    private WebElement cpaneladmin;

    public MyPage(WebDriver driver) {
        this.driver = driver;
        PageFactory.initElements(this.driver, this);
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是这个:visibleCSS选择器.显然,Selenium不支持它.有没有办法只使用xpath或其他类型的CSS选择器选择可见元素?

谢谢

Ric*_*ard 5

@FindBy(css = "a[data-code=panel]")
private List<WebElement> cpaneladmin;
Run Code Online (Sandbox Code Playgroud)

然后遍历元素,直到找到显示的元素.

public WebElement FindDisplayed(WebElements elements)
{
    foreach (WebElement element in elements)
    {
        if (element.isDisplayed()) // correct method: isDisplayed()
            return element;
    }
}
Run Code Online (Sandbox Code Playgroud)