@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
有什么想法吗?
谢谢
答案 0 :(得分:2)
WebElementFacade希望元素在与它进行交互之前是可见的(许多标准WebElement方法也是如此)。如果要检查不可见的元素,请使用WebElement或完全避免使用@FindBy,例如
By META_V2 = By.xpath("//meta[@name='description']")
.
.
.
$(META_V2).shouldBePresent();