2016-04-07 63 views
1

我想用黃瓜和硒的chimpjs來自動登錄,但我們目前通過模式登錄。目前所有嘗試點擊該模式下的登錄按鈕都會導致相同的錯誤:我可以點擊硒上的模式按鈕嗎?

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> 

這些是我爲硒所採取的步驟。我正在等待輸入用戶名或密碼之前顯示的模式,但是當我嘗試單擊登錄按鈕時,它會失敗。

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'); 
 
    }); 
 

 
};

目前一切通過除了最後一步。是否因爲我們使用登錄模式?或者有沒有辦法點擊硒中的模塊上的按鈕?或者我錯過了一個非常明顯的步驟?

解決方案:我找到了解決方案,我無法點擊該元素,但是我能夠通過client.submitForm(selector)選項進行表單提交。這樣做似乎解決了這個問題,我能夠通過最後一步。爲了提高可讀性,我還改變了最後一步說'我提交登錄表單'。你可以在這裏看到更多的表單提交選項:http://webdriver.io/api/action/submitForm.html

回答

1

聽起來好像在控件的頂部有一個「login-overlay」元素。

作爲一種變通方法,使其不可見

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

未經測試。