硒 可以识别 存在 或 能见度 只要它们的元件的 存在 或 可见 在 HTML DOM 。从用户的角度来看,你可以调用isDisplayed()上的方法 WebElement 如果打算检查 WebElement 的 显示 与否。根据当前的实现, Selenium 可能无法区分 加载 元素和 渲染 元素。 ExpectedConditions 类中的 ElementToBeClickable 方法为检查元素是否 可见 设置了期望值 __ __并 启用它, 以便您可以 单击 它。
isDisplayed()
当 元素在正在进行的DOM,但UI显示正在加载的加载 你还是要 等待 的 的JavaScript 和 AJAX调用 ,因此所有完成加载页面 WebElements 在页面上成为 交互 。在大多数 等待完整的负荷 ,你可以设置pageLoadStrategy到 正常 ,但仍可能诱发 WebDriverWait 于预期 WebElement 成为 本 , 可见 , 交互 或 点击 。
pageLoadStrategy
粗略 如果没有加载UI seleniumhq 可能不能够与几个DOM元素的交互。
根据您的反问,这里是 WebElement 的不同阶段以及检查这些阶段的相应 ExpectedConditions :
*元素的 *存在 :
presenceOfElementLocated(By locator)
An expectation for checking that an element is present on the DOM of a page. This does not necessarily mean that the element is visible.
*元素的 *可见性 :
visibilityOf(WebElement element)
An expectation for checking that an element, known to be present on the DOM of a page, is visible. Visibility means that the element is not only displayed but also has a height and width that is greater than 0.
可 点击的 元素:
elementToBeClickable(By locator)
An expectation for checking an element is visible and enabled such that you can click it.
注意 :根据docs 元素是Clickable- 它已显示并启用 。