2016-09-27 6 views
1

すべてが時代遅れである存在になるとセレンwebdriverをコードを実行する方法。 は、ここで私は、私は必要なデータを取得する前に、私は1つのウェブサイト上の約5別のページを横断、私の問題です。 driver.getを消すことはできません。なぜなら、URLは5つの異なるページすべてについて同じままであるからです。要素は、私が見ているの過去ヶ月以上見てきた

Node.jsは非同期であるので、要素が存在する前に、それはコードを実行します。私はタイムアウトを使用することができたことを知っていますが、このコードは100回実行されているため、タイムアウトは機能しません。オンライン

誰もがこれを行うために言うが、それは時代遅れだと動作しません:

driver.findElement(By.css('#gridsortlink')).then(function(webElement) { 
webElement.isElementPresent(By.css('#gridsortlink')) 
.then(function(found) { console.log(found); }); 
}); 

あなたは私が今の月を探してきたとして素晴らしいことだろうとこれを行う方法を知っている場合ソリューションのために。

答えて

1

あなたを試みた試みは間違って見える、あなたは以下のように試してみてください: - webElement.isElementPresentの代わりに

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

driver.wait(until.elementLocated(By.css('#gridsortlink')), 5 * 1000).then(function(found) { 
    console.log(found); 
}); 
+0

+ Saurabh Gaur私はそれを試して、それまでエラーが発生しました.elementLocatedは関数 –

+0

@GabeDではありません。申し訳ありませんが、いくつかの間違いがありました。更新されたコードで試してみてください。 –

+1

Thanks @SaurabhGaur –

0

をdriver.isElementPresent

driver.findElement(By.css('#gridsortlink')).then(function(webElement) { 
driver.isElementPresent(By.css('#gridsortlink')) 
.then(function(found) { console.log(found); }); 
}); 

を使用しようと、私はへのアクセスを持っていませんあなたのアプリケーションthatsなぜ私は電子メールフィールドにいくつかの間違った価値を入れていると私はエラーメッセージが表示されますいくつかの時間の後にGmail用のデモコードを作成した。ここでの出力は「真」です。

var webdriver = require('selenium-webdriver'); 
var driver = new webdriver.Builder().forBrowser('chrome').build(); 
var By = webdriver.By; 
driver.get('http://gmail.com'); 

driver.findElement(By.id("Email")).then(function(emailText){ 
    emailText.sendKeys("aaaaaaaaaaaaaaaaaaaaaaaaaadddddddddddd").then(function(){ 
    driver.findElement(By.id("next")).then(function(submit){ 
     submit.click().then(function(){ 
      driver.isElementPresent(By.className("error-msg")).then(function(text){ 
       console.log(text); 
      }); 
     }); 
    }); 
    }); 
}); 
0

Javaコード:

if((driver.findElements(By.css('#gridsortlink')).size())==1)  
{ 
system.out.println(executecode); 
} 
else 
{ 
system.out.println(element is not exist in webpage); 
} 

あなたは要素を確認することができます存在かではありません。

driver.findElements(By.css('#gridsortlink')).size()この行は、0または1に戻ります。

1は意味 - Elementは、Webページ上に存在します。

0は意味 - Elementは、Webページ上に存在しません。

はあなたのコードで試してみてください。

関連する問題