Selenium 中缺少 Get 方法
Missing Get Methods Within Selenium
我可能正在寻找或做错事,但是当我尝试在 Selenium 中使用 GetAttribute
或 GetText
方法时,它们不存在?
因此,例如,有一个忘记密码 link,使用 ID 很容易找到,但是,它上面有文字说明用户 select 按钮,如果他们忘记了密码。我希望使用 GetText
,但那不在我的下拉选项中;我只得到:
GetHashCode
、GetType
、GetScreenShot
。它是在我没有的 Nuget 包中还是应该作为 Selenium 的标准?
public IWebElement ForgotPasswordText { get { return _driver.gettext(("Please Click Below To Reset Your Password")); } }
Assert.IsTrue(HomePage.ForgotPasswordText.Displayed);
我以前用过这个,但没有在这个项目中使用过,无法确定差异以查看我哪里出了问题。
GetText 不存在,但它通常会自动填充选项。
据我所知,您正在尝试使用 GetAttribute
和 GetText
来定位 WebElements。这些方法只能用于已经定位的 WebElements 对象。要找到您的 ForgotPasswordText 元素,您可以使用这个:
public IWebElement ForgotPasswordText { get { return _driver.FindElement(By.XPath("//*[text()='Please Click Below To Reset Your Password']")); } }
这将为您提供一个带有文本 'Please Click Below To Reset Your Password' 的 WebElement。
现在,如果您想实际获取 WebElement 的文本或属性,请按以下步骤操作:
var webElement = Driver.FindElement(By.XPath("//div[@class='someClass']"));
var text = webElement.Text;
var classAttribute = webElement.GetAttribute("class");
var valueAttribute = webElement.GetAttribute("value");
我可能正在寻找或做错事,但是当我尝试在 Selenium 中使用 GetAttribute
或 GetText
方法时,它们不存在?
因此,例如,有一个忘记密码 link,使用 ID 很容易找到,但是,它上面有文字说明用户 select 按钮,如果他们忘记了密码。我希望使用 GetText
,但那不在我的下拉选项中;我只得到:
GetHashCode
、GetType
、GetScreenShot
。它是在我没有的 Nuget 包中还是应该作为 Selenium 的标准?
public IWebElement ForgotPasswordText { get { return _driver.gettext(("Please Click Below To Reset Your Password")); } }
Assert.IsTrue(HomePage.ForgotPasswordText.Displayed);
我以前用过这个,但没有在这个项目中使用过,无法确定差异以查看我哪里出了问题。
GetText 不存在,但它通常会自动填充选项。
据我所知,您正在尝试使用 GetAttribute
和 GetText
来定位 WebElements。这些方法只能用于已经定位的 WebElements 对象。要找到您的 ForgotPasswordText 元素,您可以使用这个:
public IWebElement ForgotPasswordText { get { return _driver.FindElement(By.XPath("//*[text()='Please Click Below To Reset Your Password']")); } }
这将为您提供一个带有文本 'Please Click Below To Reset Your Password' 的 WebElement。
现在,如果您想实际获取 WebElement 的文本或属性,请按以下步骤操作:
var webElement = Driver.FindElement(By.XPath("//div[@class='someClass']"));
var text = webElement.Text;
var classAttribute = webElement.GetAttribute("class");
var valueAttribute = webElement.GetAttribute("value");