我可能正在寻找或做错了什么,但是当我尝试在Selenium中使用GetAttribute
或GetText
方法时,它们不存在吗?
因此,例如,有一个“忘记密码”链接,可以使用ID轻松找到它,但是,在其上方有一些文字,上面有说明,如果用户忘记了密码,则可以选择按钮。我希望使用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,但通常会使用该选项自动填充。
答案 0 :(得分:1)
据我所知,您正在尝试使用GetAttribute
和GetText
来定位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");