【问题标题】:How we can switch from one window to another on same window with same window ID in Selenium webdriver? [duplicate]我们如何在 Selenium webdriver 中使用相同窗口 ID 从一个窗口切换到另一个窗口? [复制]
【发布时间】:2018-05-28 12:18:27
【问题描述】:

我尝试为另一个问题添加评论,但它显示了一条错误消息,要求至少需要 50 个信誉,因此我更新了我的代码。现在,请在以下情况下帮助我:

我有一个仪表板页面 在仪表板中,我有列出用户的网格视图 单击用户名时,它会在同一页面上打开“新窗口”,其中包含用户名和密码字段 现在我必须在新窗口中输入文本 根据我的代码,它不起作用,请帮助我

代码 -

                System.setProperty("webdriver.chrome.driver", 
               "C:\\chromedriver_win32\\chromedriver.exe");
    WebDriver driver = new ChromeDriver();
    driver.get("https://web.mauditor.com/Login/SignIn");
    driver.manage().window().maximize();
    driver.findElement(By.id("UserName")).sendKeys("ajay0094");
    driver.findElement(By.id("Password")).sendKeys("12341234");
    driver.findElement(By.id("btnsubmit")).click();
    Thread.sleep(3000);
    driver.findElement(By.xpath("//*[@id=\'leftpaneldiv\']/ul/li[1]")).click();
    driver.findElement((By.cssSelector(".treeview > a:nth-child(1) > span:nth-child(1)"))).click();
    Thread.sleep(2000);
    driver.switchTo().frame(driver.findElement(By.id("usermgmtframe")));
    driver.findElement(By.id("txtName")).sendKeys("Joe");  
    Thread.sleep(3000);
    driver.findElement(By.xpath("/html/body/div[1]/div[1]/div[1]/div/div/div/div/form/div[2]/div/div[2]/div/div/div/table/tbody/tr/td[6]/a[4]/img")).click();
    String parent_window = driver.getWindowHandle();
    System.out.println("Parent Window ID is : "+parent_window);
    java.util.Set<String> allWindows = driver.getWindowHandles();
    int count = allWindows.size();
    System.out.println("Now Total Windows : "+count);
    for(String child_1:allWindows)
    if(parent_window.equalsIgnoreCase(child_1))
    driver.switchTo().window(child_1);
                System.out.println(driver.getTitle());
                String child1_window = driver.getWindowHandle();
                System.out.println("Child 1 Window ID is : "+child1_window);

                driver.findElement(By.id("modal-close")).click();
                driver.findElement(By.id("UserName")).sendKeys("AJAY");

   Output- Parent Window ID is : CDwindow-DD4195D132ED64B192AB85F0846D5699
   Now Total Windows : 1
   mAuditor - Manage Users
   Child 1 Window ID is : CDwindow-DD4195D132ED64B192AB85F0846D5699
    Exception in thread "main" org.openqa.selenium.NoSuchElementException: 
    no such element: Unable to locate element: 
    {"method":"id","selector":"modal-close"}
    (Session info: chrome=66.0.3359.181)

请检查。

【问题讨论】:

  • 提供一些代码,html。
  • @Kovacic 请检查我在上面的问题中附上了图片
  • 新标签或新窗口
  • @bhupathituraga 新窗口
  • U 使用 driver.switch_to_window() driver.window_handles(1) 切换到新窗口

标签: selenium selenium-webdriver


【解决方案1】:

对于模态对话框弹出窗口,您可以切换到活动元素

driver.switchTo().activeElement();
Thread.sleep(2000);
driver.findElement(By.id("UserName")).sendKeys("jow");

【讨论】:

  • 你能再检查一遍上面的代码吗
  • 该代码发生了什么
  • 如需最佳答案,请提供网址
  • 请检查上面我在上面的脚本中提到的 URL
  • @ajaykumar 您要打开多个窗口并登录每个帐户吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-09
  • 2013-01-15
  • 1970-01-01
  • 2012-11-28
  • 2022-01-05
相关资源
最近更新 更多