【问题标题】:No such element exception when trying [duplicate]尝试[重复]时没有这样的元素异常
【发布时间】:2020-02-23 00:10:41
【问题描述】:

为什么我在代码正确时收到无此类元素异常错误,当我单击 gmail 时,链接会在新选项卡中打开,但不会将电子邮件作为密钥发送?

@Test
public static void gDem() throws InterruptedException{

    System.setProperty("webdriver.chrome.driver", "D:\\Edu Stuff\\Selenium\\Selenium Softs\\Other Softs\\Drivers\\chromedriver_win32\\chromedriver.exe");
    WebDriver driver = new ChromeDriver();
    driver.manage().window().maximize();
    driver.manage().deleteAllCookies();
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
    driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);
    driver.get("http://www.google.ca");
    driver.findElement(By.linkText("Gmail")).click();

    driver.findElement(By.linkText("Sign in")).click();
    Thread.sleep(3000);

    driver.findElement(By.xpath("//input[@id='identifierId']")).sendKeys("abhi.abhib5");

    Thread.sleep(2000);
    driver.close();

}

【问题讨论】:

  • 您检查日志文件是否有错误?

标签: java selenium


【解决方案1】:

如果它打开一个新选项卡,您需要在执行该选项卡窗口的操作之前切换到该选项卡窗口。试试下面

  // this is to keep your parent window
 String parentWindow = driver.getWindowHandle();
 driver.findElement(By.linkText("Sign in")).click();
 Thread.sleep(3000);

 // since new tab is opened get new winodw handles and switch
 ArrayList<String> tabs = new ArrayList<String> (driver.getWindowHandles());        
 driver.switchTo().window(tabs.get(1));

driver.findElement(By.xpath("//input[@id='identifierId']")).sendKeys("abhi.abhib5");

Thread.sleep(2000);

// if you have further actions in parent window you need to switch back to the parent window
driver.close();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-16
    • 2020-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-27
    相关资源
    最近更新 更多