Java Selenium Webdriver:切换窗口后获取NoTouchElementException
我的要求: 1) 去 2) 点击安全登录 3) 切换到新打开的窗口并在其中填写用户名和密码。在此窗口上查找用户名和密码会引发错误Java Selenium Webdriver:切换窗口后获取NoTouchElementException,java,window,selenium-webdriver,Java,Window,Selenium Webdriver,我的要求: 1) 去 2) 点击安全登录 3) 切换到新打开的窗口并在其中填写用户名和密码。在此窗口上查找用户名和密码会引发错误 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. 我的代码: 导入java.util.
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.
我的代码:
导入java.util.Iterator;
导入java.util.Set;
导入org.openqa.selenium.By;
导入org.openqa.selenium.WebDriver;
导入org.openqa.selenium.firefox.FirefoxDriver;
公共类WindowHandler1{
公共静态void main(字符串args[])引发InterruptedException
{
WebDriver=newfirefoxdriver();
驱动程序。获取(“http://www.kotak.com/bank/personal-banking/convenience- 银行业务(banking/net banking.html);;
睡眠(5000);
driver.findelelement(By.xpath(“./*[@id='label-01']]/a[1]”)。单击();
设置windowids=driver.getWindowHandles();
迭代器iter=windowids.Iterator();
System.out.println(windowids);
字符串mainWindowId=iter.next();
字符串tabedWindowId=iter.next();
睡眠(2000L);
//切换到新的弹出窗口
driver.switchTo().window(tabedWindowId);
睡眠(20000);
//在执行下面的行时没有得到这样的元素异常
driver.findelelement(By.xpath(“./*[@id='Username']”);
driver.findElement(By.id(“用户名”)).sendKeys(“abc”);
}
}我也遇到了类似的问题,并注意到在selenium的窗口句柄列表中,顺序并不总是相同的。因此,在代码中,您似乎依赖于列表中的最后一个窗口是新窗口,而它可能是第一个窗口。解决方案是确保您尝试切换到的窗口与当前窗口句柄不同
您可能会遇到NoTouchElement异常,因为您的窗口不正确。有人回答了类似的问题。看看这个答案
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");