我用Protractor编写了测试,并使用了一个expect语句:
loginPage.email.sendKeys( params.login.email );
expect(loginPage.email.getText()).toEqual( params.login.email );
字符串
但是,我的测试失败了,因为signUpPage.email.getText()返回了一个空字符串。在Selenium的文档中找不到调用什么函数来使输入字段返回正确的值?
在我的Protractor.conf文件中:
params: {
login: {
email: 'user@email.com',
password: 'blahblah123'
}
型
终端错误:
应为“”等于“user@email.com”。
因此,我试图匹配电子邮件字段的输入与我发送的电子邮件地址相同。有什么建议如何在Selenium中做到这一点吗?
3条答案
按热度按时间rqenqsqc1#
如果是
input
字段,则需要获取**value
属性**的值:字符串
类似地,为了在这里应用Saifur的想法,如果需要等待元素包含所需的值,请使用
textToBePresentInElementValue
Expected Condition:型
请注意,必须指定超时值(以ms为单位)。
q0qdq0h22#
如果你想获取一个由AngularJS管理的输入字段的值,只使用一个WebDriver示例,有一个简单的方法可以实现。
我使用FirefoxWebDriver测试了它,它运行得很好。
基本上,您必须使用Javascript Executor在浏览器中执行JavaScript代码。
如果你的web项目有jQuery插件,那么你可以使用以下方法:
字符串
如果你想使用原始JavaScript,你可以这样做:
型
注意,在这种情况下,cssId应该是一个id属性。
ig9co6j13#
元素加载时间可能是这里的问题。在这种情况下,您可以使用ExpectedCondition,甚至匹配您正在寻找的文本。
字符串
更新错过了预期条件的时间。感谢@alecxe
型