Som*_*r N 4 webdriver jasmine selenium-webdriver protractor
问题:在特定网页中,我想等待特定元素,然后对该元素执行操作。
使用的代码:
//Official webapp URL
browser.driver.get('http://ubet-feature-qa.opal.dnb.com');
// variable to get the particular element
var userNameDisplayedOnHomePageField = element(by.css('[ng-if="authSrv.getUserName()"]'));
//function to wait for the element and return the element availability
this.isLoggedIn = function(){
browser.driver.wait(protractor.until.elementIsVisible(userNameDisplayedOnHomePageField));
return userNameDisplayedOnHomePageField.isDisplayed();
};
Run Code Online (Sandbox Code Playgroud)
预期结果: 它应该返回元素可用性true或false
实际结果: 收到以下错误消息,不知道为什么会这样..
类型错误:WebElementCondition 未解析为 WebElement:[object Object]
Selenium 条件无法解析 Protractor ElementFinder。
您可以使用 aprotractor.ExpectedConditions而不是protractor.until条件:
var EC = protractor.ExpectedConditions;
var button = element(by.css("..."));
browser.wait(EC.visibilityOf(button), 1000);
button.click();
Run Code Online (Sandbox Code Playgroud)
您还可以使用具有 Selenium 条件的 Selenium 元素:
var until = protractor.until;
var button = browser.findElement(by.css("..."));
browser.wait(until.elementIsVisible(button), 1000).then(function(button){
button.click();
});
Run Code Online (Sandbox Code Playgroud)
另一种方法是WebElement从ElementFinder:
var until = protractor.until;
var button = element(by.css("..."));
browser.wait(until.elementIsVisible(button.getWebElement()), 1000).then(function(button){
button.click();
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2427 次 |
| 最近记录: |