Как найти элемент элемента, который присутствует во всплывающем окне расширения

Я пытаюсь автоматизировать Dapp с помощью фантома с помощью веб-драйвера selenium. Я использую многооконный обработчик, но, к сожалению, мой код дает мне только 1 окно, он не рассматривает кошелек Phantom как отдельную вкладку или окно. Я хочу нажать кнопку подключения, но не могу подключиться, даже если это всплывающее окно не рассматривается как отдельное окно или вкладка.

      @Test

    public void Phantom() 
    {
        ChromeOptions opt = new ChromeOptions();
        opt.addExtensions(new File("phantom.crx"));
        System.setProperty("webdriver.chrome.driver", "chromedriver.exe");
        WebDriver driver = new ChromeDriver(opt);
        driver.get("url");
        String parent=driver.getWindowHandle();
         
        // This will return the number of windows opened by Webdriver and will return Set of St//rings
         Set <String>s1=driver.getWindowHandles();
         
        // Now we will iterate using Iterator
        Iterator<String> I1= s1.iterator();
         
        while(I1.hasNext())
        {
         
           String child_window=I1.next();
         
        // Here we will compare if parent window is not equal to child window then we            will close
         
        if(!parent.equals(child_window))
        {
        driver.switchTo().window(child_window);
        driver.findElement(By.xpath("//*[@id=\"root\"]/main/div/div/section/button[2]")).click();
         driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS) ;
        driver.findElement(By.xpath("//*[@id=\"root\"]/main/div[2]/div/form/div[1]/div/section/div/textarea")).sendKeys("phrase");
        driver.findElement(By.xpath("//*[@id='root']/main/div[2]/div/form/div[2]/button")).click();  
         driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS) ;
        driver.findElement(By.xpath("//*[@id=\"root\"]/main/div[2]/div/div/button")).click(); 
        driver.findElement(By.xpath("//*[@id='root']/main/div[2]/div/form/div[1]/div/section/input")).sendKeys("password");
        driver.findElement(By.xpath("//*[@id='root']/main/div[2]/div/form/div[1]/div/section/div[1]/input")).sendKeys("password");
        driver.findElement(By.xpath("//*[@id=\"root\"]/main/div[2]/div/form/div[1]/div/section/div[2]/span/input")).click(); 
        driver.findElement(By.xpath("//*[@id=\"root\"]/main/div[2]/div/form/div[2]/button")).click(); 
        driver.findElement(By.xpath("//*[@id=\"root\"]/main/div[2]/div/div[2]/button")).click(); 
        driver.manage().timeouts().implicitlyWait(20,TimeUnit.SECONDS) ;
        driver.findElement(By.xpath("/html/body/div/main/div[2]/div/div[2]/button")).click(); 
        driver.close();
        // once all pop up closed now switch to parent window
        driver.switchTo().window(parent);
        //close the parent window
        driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS) ;
        driver.findElement(By.xpath("//*[@id=\"manu-box\"]/div[1]/div/div/div/div[2]/div[2]/button")).click(); 
        driver.findElement(By.xpath("//*[@id=\"uncontrolled-tab-example-tabpane-sol\"]/div/div[3]/div/div[1]/div")).click(); 
//  //at this point there is no focused window, we have to explicitly switch back to some window.
        
    

    }
        

        }
        String wallet1= driver.getWindowHandle();
        Set <String> all=driver.getWindowHandles();
        
        System.out.println("No. of windows" + all.size());
            
        
}
}

0 ответов

Другие вопросы по тегам