如何使用Selenium获取role = alert的文本

时间:2019-10-13 09:00:21

标签: c# selenium

我想从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”。

2 个答案:

答案 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;