我正面临这样的问题:测试“在每个测试用例之前”挂钩: ret的“测试用例”:错误:超过50000ms的超时。对于异步测试和钩子,请确保调用了"done()“;如果返回一个Promise,请确保它可以解析。
2)针对“测试用例”测试"after each“钩子: ret : Error: Timeout of 2000ms。对于异步测试和钩子,请确保调用了"done()“;如果返回一个Promise,请确保它可以解析。
var webdriver=require('selenium-webdriver');
var By=require('selenium-webdriver').By;
var until=require('selenium-webdriver').until;
//this requires to include the mocha describe,each.....
var test = require('selenium-webdriver/testing');
var fs=require('fs');
var chrome = require('selenium-webdriver/chrome');
var path = require('chromedriver').path;
var service = new chrome.ServiceBuilder(path).build();
chrome.setDefaultService(service);
var driver = new webdriver.Builder()
.withCapabilities(webdriver.Capabilities.chrome())
.build();
test.describe( 'Test' , function(){
test.beforeEach(function(){
this.timeout(50000);
driver.get('https://staging.keela.co/login');
});
test.afterEach(function(){
driver.quit();
});
test.it( 'Test Case' , function(){
this.timeout(50000);
setTimeout(done, 4000);
// driver.findElement(webdriver.By.xpath('//*[@id="login-email"]')).then(function(title){
// title.sendKeys("bandana@yopmail.com");
driver.wait(until.elementLocated(By.name('login-email'))).then(function(email){
email.sendKeys('bandanakeela@gmail.com');
driver.wait(until.elementLocated(By.name('login-password'))).then(function(pw){
pw.sendKeys('123456789');
});
driver.findElement(webdriver.By.linkText("Log In")).click();
});
});
});
发布于 2018-01-10 11:34:20
我注意到在页面打开的时间和登录表单可供交互的时间之间有相当大的延迟。您的代码不会等待控件变为可单击状态。
我不知道如何使用Javascript完成此操作,但在Python中,您将使用WebDriverWait对象。
另外,使用"id“属性可能比使用"name”属性更可靠。
发布于 2018-01-10 12:30:54
以下是几个事实:
Email
字段的定位器更改为:返回driver.findElement({xpath:"//input@class='form-control‘并将Password
字段的定位器@id='login-email'"});
返回driver.findElement({xpath:"//input@class='form-control‘和网页上的@id='login-password'"});
document.readyState === "complete"
后一段时间内会呈现Email
和Password
字段。因此,在ExpectedConditions
设置为elementToBeClickable(By locator)
.的情况下,为Email
字段归纳WebDriverWait
(Java) WebElement my_email =新的驱动程序(驱动程序、@id='login-email'")));和WebElement my_email
https://stackoverflow.com/questions/48186280
复制