硒中缺少获取方法

时间:2019-10-14 15:00:53

标签: c# selenium automation nuget gettext

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

因此,例如,有一个“忘记密码”链接,可以使用ID轻松找到它,但是,在其上方有一些文字,上面有说明,如果用户忘记了密码,则可以选择按钮。我希望使用GetText,但是那不是我的下拉选项;我只得到: GetHashCodeGetTypeGetScreenShot。它是在我没有的Nuget包中还是应该作为Selenium的标准包装?

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

Assert.IsTrue(HomePage.ForgotPasswordText.Displayed);

我一直在用这个,但在本项目中却没有用,并且无法确定差异来查看我在哪里出错了。

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

1 个答案:

答案 0 :(得分:1)

据我所知,您正在尝试使用GetAttributeGetText来定位WebElement。这些方法只能用于已经定位的WebElements对象。要找到您的ForgotPasswordText元素,可以使用以下代码:

public IWebElement ForgotPasswordText { get { return _driver.FindElement(By.XPath("//*[text()='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");