2012-11-09 112 views
1

Iam試圖在瀏覽器之間切換,即點擊一個按鈕,它啓動一個新的瀏覽器它 正在尋找句柄..問題是它無法找到新的對象用id,xpath,name等搜索的瀏覽器可以給我任何建議。 它也能夠匹配網址。無法在瀏覽器之間切換selenium webdriver

請給我提供相同的解決方案。下面是 是代碼。

//上一個屏幕 Set windows = driver1.getWindowHandles();

driver1.findElement(By.id("findButton")).click(); 

//切換手柄的新屏幕

driver1.switchTo().window("Customer Search"); 
driver1.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); 
int i = 1; 
while(i<= 10){ 
    for (String handle : driver1.getWindowHandles()) { 
     String myTitle = driver1.switchTo().window(handle).getTitle(); 
     System.out.println("myTitle value : " +myTitle); 

//客戶搜索的新窗口標題

 if(myTitle.equalsIgnoreCase("Customer Search")){ 
      driver1.manage().window().maximize(); 

//如果我通過正確的屏幕的URL也匹配在這裏我給虛擬(「sshsj」)

  if(driver1.getCurrentUrl().equalsIgnoreCase("sshsj")); 
        { 
      System.out.println("Url is matching"); 

//但是無法識別新窗口上的對象。

  driver1.findElement(By.xpath("html/body/left/form/table/tbody/tr[2]/td[1]/input")).sendKeys("kamal"); 
        } 

回答

0

您可以使用JS打開一個新窗口,速度更快。

IJavaScriptExecutor jscript = driver as IJavaScriptExecutor; 
jscript.ExecuteScript("window.open()"); 

然後切換窗口,使用窗口句柄:

List<string> handles = driver.WindowHandles.ToList<string>(); 
driver.SwitchTo().Window(handles.Last()); 
driver.get(url); 
driver.findElement(By.xpath("html/body/left/form/table/tbody/tr[2]/td[1]/input")).sendKeys("kamal"); 
0

可能的是,該元件可以存在iframe內。在這種情況下,您需要切換到該iframe,然後才能訪問iframe中的任何元素。

相關問題