2017-07-29 20 views
0

Giddayすべて、セレンwebdriverを、chromedriver: "ElementNotVisibleError"

私はセレンwebdriverをして​​chromedriver依存関係を持つ、NodeJSを使用しています。私はそれが期待しているように、なぜ私がWebDriver.wait()メソッドを協力させることができないのかをトラブルシューティングするのが少し難しいです。この結果として、「見えない要素ElementNotVisibleError」のエラーメッセージを私が得ている理由

require('chromedriver'); 
var webdriver = require('selenium-webdriver'), 
    By = webdriver.By, 
    until = webdriver.until; 

var driver = new webdriver.Builder() 
    .forBrowser('chrome') 
    .build(); 

... 

driver.findElement(By.css(userSelector)).sendKeys(accountUsername); 
driver.findElement(By.css(userNextButton)).click(); 

driver.wait(until.elementLocated(By.css(passwordSelector))).then(function() { 
    driver.findElement(By.css(passwordSelector)).sendKeys(accountPassword); 
    driver.findElement(By.css(passwordNextButton)).click(); 
}); 

... 

あなたは私をトラブルシューティングするために助けてくださいことはできますか?私はWebDriver.sleep()メソッドを使用して目的の結果に到達できますが、実際には私がここで紛失していることを理解したいだけです。

乾杯。

答えて

0

多くの髪が紛れて、私は自分自身でこれに答えることができました。基本的に、私はWebDriver.elementLocated()リターンが真とすぐ要素がDOMに存在しているが、この時点では、要素が表示されていることを保証するものではありませんように、これ必要も、このために待機することを

driver.wait(until.elementLocated(By.css(passwordSelector))); 
driver.wait(until.elementIsVisible(driver.findElement(By.css(passwordSelector)))).sendKeys(accountPassword); 

を集めています。

関連する問題