当元素状态不可见时,@FindBy 注解找不到元素

@FindBy annotations cannot find the element, when element state is not visible

@FindBy 注释找不到元素,当元素状态不可见时。我们正在编写一些 SEO 测试,这些元素在网页上不可见。

例如以下不工作;

@CacheLookup
@FindBy(xpath = "//meta[@name='description']")
public WebElementFacade metaDescription;

但这行得通;

WebElement metaV2 = getDriver().findElement(By.xpath("//meta[@name='description']"));

它给出了这样的错误;

org.openqa.selenium.ElementNotVisibleException: Timed out after 15 seconds. Element not available

有什么想法吗?

谢谢

WebElementFacade 期望元素在与其交互之前是可见的(许多标准 WebElement 方法也是如此)。如果要检查不可见元素,请使用 WebElement 或完全避免使用 @FindBy,例如

By META_V2 = By.xpath("//meta[@name='description']")
.
.
.
$(META_V2).shouldBePresent();