我想从HTML页面获取role = alert的文本,我可以找到该元素,但无法获取该文本。
<div class="alert alert-danger no-margin" role="alert">
customer.dashboard.InvalidCode
要找到我使用的元素:
driver.FindElement(By.XPath("//div[contains(@class, 'alert')]"));
但是如果我每次获取空字符串时都尝试获取“ customer.dashboard.InvalidCode”。
答案 0 :(得分:0)
您需要等到元素可见才能获取文本:
IWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(3))
IWebElement alert = wait.Until(ExpectedConditions.ElementExists(By.CssSelector("div.alert.alert-danger")));
string alertText = wait.Until(ExpectedConditions.ElementIsVisible(alert)).Text;
答案 1 :(得分:-1)
尝试使用此xpath://div[contains(@class, 'alert alert-danger no-margin')]
而不是//div[contains(@class, 'alert')]
driver.FindElement(By.XPath("//div[contains(@class, 'alert alert-danger no-margin')]")).Text;