在 Selenium 中,使用 WebDriverWait 是处理可能不会立即出现的动态元素的一个关键方面在网页上。但是,您遇到了一个问题,即尝试从元素检索文本时 WebDriverWait 似乎被忽略。
要纠正此问题,您可以利用 SeleniumExtras.WaitHelpers 中的 ExpectedConditions.ElementIsVisible() 方法图书馆。此方法显式等待元素变得可见并可进行交互,然后再尝试与其交互。
以下是包含 ElementIsVisible() 方法的修改后的代码片段:
string messageText = new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementIsVisible(By.ClassName("block-ui-message"))).GetAttribute("innerHTML");
通过使用这种方法,等待将不会被忽略,并且代码将在元素变得可见后成功地从元素中检索文本。
以上是为什么我的 Selenium WebDriverWait 被忽略,以及如何可靠地从动态元素中检索文本?的详细内容。更多信息请关注PHP中文网其他相关文章!