我正在使用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;
答案 0 :(得分:0)
使用此功能移至框架。
driver.switchTo().frame(driver.findElement(By.xpath(".//iframe[@src='yourFrameSourceFromHTML']")));
当框架没有任何ID时,这很有用。