0
I switch from window A to window B.When i try to perform an action on window B,it throws No such element exception.I am new to selenium webdriver.Please help me out.

我的要求: 1)转到http://www.kotak.com/bank/personal-banking/convenience-banking/net-banking.html 2)点击安全登录 3)切换到新打开的窗口并填写用户名和密码在里面。在这个窗口中定位用户名和密码会抛出错误。

     My code :


    import java.util.Iterator;
    import java.util.Set;

    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.firefox.FirefoxDriver;

    public class WindowHandler1 {


public static void main(String args[]) throws InterruptedException
{

    WebDriver driver = new FirefoxDriver();     

    driver.get("http://www.kotak.com/bank/personal-banking/convenience-                   banking/net-banking.html");
    Thread.sleep(5000);

    driver.findElement(By.xpath(".//*[@id='label-01']/a[1]")).click();
    Set<String> windowids = driver.getWindowHandles();
    Iterator<String> iter = windowids.iterator();
            System.out.println(windowids);

    String mainWindowId = iter.next();
    String tabedWindowId = iter.next();
    Thread.sleep(2000L);

            // switching to the new pop up window
            driver.switchTo().window(tabedWindowId);

            Thread.sleep(20000);

            //getting no such element exception upon executing  line below 
    driver.findElement(By.xpath(".//*[@id='Username']")).sendKeys("username");
            driver.findElement(By.id("Username")).sendKeys("abc");

} }

4

1 回答 1

0

我遇到了类似的问题,并注意到在 selenium 的窗口句柄列表中,顺序并不总是相同的。因此,在您的代码中,您似乎依赖于列表中的最后一个窗口作为新窗口,而它可能是第一个窗口。解决方案是确保您尝试切换到的窗口与当前窗口句柄不同。

您可能会收到 NoSuchElement 异常,因为您不在正确的窗口中。

于 2013-10-08T15:13:16.633 回答