2017-03-07 8 views
0

のアプリケーションにメニューをクリックすると、それは自動的に新しいタブでそのページを開き、この後新しいタブで新しいタブクロームの要素を見つけることができない - セレンwebdriverをjavaの

String mainWindow = driver.getWindowHandle(); 

//when click the below its opened in new tab 
driver.findElement(By.cssSelector("span.slds-align-middle")).click(); 
Set<String> handles = driver.getWindowHandles(); 
for (String handle : handles) { 
    if (!handle.equals(mainWindow)) { 
     driver.switchTo().window(handle); 
     break; 
    } 
} 

driver.findElement(By.id("23:311;a")).click(); 

をアクションを実行します要素を見つけることができない新しいウィンドウに切り替える

driver.findElement(By.id("23:311;a")) 

新しく開いたタブの要素をクリックするにはどうすればよいですか?

HTML: これは、Salesforceのアプリケーション

<span class="slds-icon_container slds-icon-utility-new-window slds-m-left--x-small focus-icon" data-aura-rendered-by="54:375;a"> 
+3

私は非常に多くのidは '23で疑う属性:311; A'。 htmlを共有してください。 – Guy

+0

セレンがブラウザよりも速いことがあります。タイムアウト(Thread.sleep(500);)を試してください。おそらくこれが役に立ちます。 – desperateCoder

+0

Thread.sleepも機能しません。 – Prabu

答えて

0

23:311;aは、ID属性ではありませんが、それdata-aura-rendered-by属性と、それはあなたが本当に要素を見つけるためにその上でリレーすることはできませんので、ランダムであるように思われます。一意のクラス名を使用することをお勧めします。 lds-icon-utility-new-window

driver.findElement(By.className("lds-icon-utility-new-window")); 

十分ユニークだと思ったり、いくつかのクラスの組み合わせは

driver.findElement(By.cssSelector(".slds-icon_container.slds-icon-utility-new-window")); 
+0

ありがとうGuy:私のxpathをチェックします – Prabu

関連する問題