2017-07-31 6 views
0

私はSelenium Webdriverを使用してSalesforceアプリケーションを自動化しています。 テストシナリオ: - [アカウント]ページをクリックすると、[ルックアップ](アカウント)検索アイコンが標準のSalesforce検索ポップアップを開きます。私は窓を切り替えることができません。Selenium Webdriver 3が標準のSalesforce検索ポップアップウィンドウのオブジェクトを特定できません

WebDriver popup=driver; 
    //Click on the Search icon of Account Lookup 
    element = driver.findElement(By.id("j_id0:formId:j_id29:j_id53:j_id54:3:j_id55_lkwgt")); 
    String Parent_Window = driver.getWindowHandle(); 
    Set<String> handles = driver.getWindowHandles(); 
    System.err.println("No of windows : " + handles.size()); 
    element.click(); 
    for (String s : handles){ 
     String windowHandle = s; 
      popup = driver.switchTo().window(windowHandle); 

      System.out.println("Window Title : " + popup.getTitle()); 
      System.out.println("Window Url : " + popup.getCurrentUrl()); 
      if (popup.getTitle().contains("Salesforce")){ 
       System.out.println("Selected Window Title : " + popup.getTitle()); 
       driver = popup; 
       driver.switchTo().frame("searchFrame"); 
       driver.findElement(By.id("lksrch")).sendKeys("Google"); 
       driver.switchTo().frame("resultsFrame"); 
       //Selecct account for search Account. 
       driver.findElement(By.xpath(".//*[@id='Account_body']//tr[2]/th")).click(); 
       break; 
      } 

      } 

    driver.switchTo().window(Parent_Window); 

    return element; 
+0

iframeをポップアップ表示するか、xpathを使用して識別を確認することができますか? –

+0

私はiframeであることを確認しました。 – Ajay

+2

switchtoWindowの代わりにswitchtoFrameを使用してください –

答えて

0

これを使用してフレームに移動します。

driver.switchTo().frame(driver.findElement(By.xpath(".//iframe[@src='yourFrameSourceFromHTML']"))); 

これは、フレームにIDがない場合に便利です。

関連する問題