2016-04-07 22 views
1

Oturum açma işlemini otomatikleştirmek için chimpjs'i salatalık ve selenyum ile kullanmaya çalışıyorum, ancak şu anda bir modal aracılığıyla giriş yapıyoruz. Ve şu anda hepsi aynı hata olduğunu modal sonuca giriş butonuna tıklayın girişiminde:Selenyumlu bir modda bir düğmeye tıklayabilir miyim?

Error: unknown error: Element is not clickable at point (764, 42). Other element would receive the click: <div class="login-overlay " style="display: block; opacity: 0.969096;">...</div> 

Bunlar selenyum için alıyorum adımlardır. Kullanıcı adını veya şifresini girmeden önce modalın gösterilmesini bekliyorum, ancak giriş düğmesine basmaya çalıştığımda, bu bana başarısız oluyor.

module.exports = function() { 
 
    this.Given(/^I am on the website homepage$/, function() { 
 
    client.url('example.com'); 
 
    }); 
 

 
    this.When(/^I click the login button$/, function() { 
 
    client.click('.navbar__link--login'); 
 
    }); 
 

 
    this.Then(/^I see the login screen$/, function() { 
 
    client.waitForExist('.login-overlay'); 
 
    }); 
 

 
    this.Then(/^I enter my username in the email field$/, function() { 
 
    client.setValue('#username', '[email protected]'); 
 
    }); 
 

 
    this.Then(/^I enter my password in the password field$/, function() { 
 
    client.setValue('#password', '[email protected]'); 
 
    }); 
 

 
    this.Then(/^And I click the login button$/, function() { 
 
    client.click('.login-btn'); 
 
    }); 
 

 
};

anda her şey son adımda hariç geçer. Bu, giriş için bir modal kullandığımız için mi? Veya selenyumdaki modellerde düğmelere tıklamanın bir yolu var mı? Yoksa gerçekten bariz bir adımı mı atıyorum?

Çözüm: ancak ben client.submitForm(selector) seçeneği ile form gönderme yapmak başardı, buna bir çözüm, ben elemanın tıklayın başaramadı bulundu. Bunu yapmak sorunu çözmek için görünüyordu ve son adımı geçebildim. Ben de okunabilirlik için 'Giriş formunu gönderdim' demek için son adımı değiştirdim. Form gönderme seçeneği hakkında daha fazlasını burada görebilirsiniz: http://webdriver.io/api/action/submitForm.html

cevap

1

Kontrolün üstünde "giriş-overlay" öğesi varmış gibi görünüyor. Geçici bir çözüm olarak

, görünmez hale:

client.execute("arguments[0].style.display = 'none';", client.element('.login-btn')); 

Test edilmedi.

İlgili konular