Selenium 中缺少 Get 方法

Missing Get Methods Within Selenium

我可能正在寻找或做错事,但是当我尝试在 Selenium 中使用 GetAttributeGetText 方法时,它们不存在?

因此,例如,有一个忘记密码 link,使用 ID 很容易找到,但是,它上面有文字说明用户 select 按钮,如果他们忘记了密码。我希望使用 GetText,但那不在我的下拉选项中;我只得到: GetHashCodeGetTypeGetScreenShot。它是在我没有的 Nuget 包中还是应该作为 Selenium 的标准?

public IWebElement ForgotPasswordText { get { return _driver.gettext(("Please Click Below To Reset Your Password")); } }

Assert.IsTrue(HomePage.ForgotPasswordText.Displayed);

我以前用过这个,但没有在这个项目中使用过,无法确定差异以查看我哪里出了问题。

GetText 不存在,但它通常会自动填充选项。

据我所知,您正在尝试使用 GetAttributeGetText 来定位 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");