2017-04-16 4 views
-1

同じテキストのボタンがたくさんありますが、whileループを使用している間に1つずつクリックする必要があります。最初のもの、2番目のもの、3番目のもの、続けてください。同じテキストのたくさんのボタンからリンクを1つずつ選択する方法

while(true) { 
    driver.findElement(By.xpath("(//button[text()='Follow'])[1]")).click(); 
} 

に[1]に変更するにはどのような方法がある[2]に[3]ので、私は、より高い数値にし、ので、あなたの現在の方法では

+0

int i = 0; while(i <= no_of_links){ driver.findElement(By.xpath( "button(text))="フォロー ")[" +(++ i)+ "]")) ); } – Barney

+0

ループが作成されるたびに1を加算する[+(++ i)+]]の機能について教えてください –

+0

はいwhileループの各反復でiの値を1つずつインクリメントします – kushal

答えて

0

をクリックし続けることができ、実行するたびにループ、 whileループを終了するための出口戦略はありません。おそらく、これを行う簡単な方法は、そのロケータに一致するすべてのリンクをつかんで、ループ内の各リンクをクリックすることです。

List<WebElement> links = driver.findElements(By.xpath("(//button[text()='Follow'])")); 
for (WebElement link : links) 
{ 
    link.click(); 
} 
+0

よく私はループを終了する必要はありません私はちょうどプログラムをオフにすると、これは実際には、ボタンの終わりに達するまで、リンクのすべてが存在しないinstagramのボタンに従って、ページが下に行くといくつか新しいボタン。あなたは戦略は表示されていないボタンの残りの部分をクリックしないでください –

+0

あなたはあなたの質問にそれを言及しなかったので、それのどれも対処されませんでした。簡単な方法は、答えのコードを実行する前にページの一番下までスクロールすることです。下にスクロールする方法は、以前はSOでカバーされていた別の質問です。あなたは、その答えを見つけるためにGoogleをすることができます。 – JeffC

+0

ページが自動的に下にスクロールして、下のフォローボタンに近づくとスクロールする必要はありません(「(// button [text()= 'Follow'])) )毎回ループが実行されます。あなたはそれをやる方法を知っていますか? –

関連する問題