Selenium Webdriver 3无法识别标准Salesforce查找弹出窗口中的对象

时间:2017-07-31 06:11:48

标签: selenium

我正在使用Selenium Webdriver通过它自动化Salesforce应用程序。 测试场景: - 在“帐户”页面上,单击“查找”(帐户)搜索图标时,将打开标准的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;

1 个答案:

答案 0 :(得分:0)

使用此功能移至框架。

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

当框架没有任何ID时,这很有用。