【问题标题】:can't find element from popup with selenium无法从带有硒的弹出窗口中找到元素
【发布时间】:2020-08-19 16:47:37
【问题描述】:

目前我开始使用 selenium,在测试页面上有一个弹出窗口,我必须在其中填写我的电子邮件。问题是 selenium 无法通过 xpath 找到元素,它给了我 NoSuchElementException。

I've done a screenshot from the elment here

我已经用普通的 findElement() 尝试了 i

    driver.get("https://phptravels.com/demo/");
    driver.findElement(By.xpath("//*[@id=\"Main\"]/section[1]/div/div/div[2]/div/div[1]/a")).click();
    Thread.sleep(3000);
    driver.findElement(By.xpath("//*[@id=\"Main\"]/div/div[2]/table/tbody/tr[17]/td[1]/span[2]/a")).click();

    Thread.sleep(20000);
    driver.findElement(By.xpath("/html/body/div[1]/div/div[1]/div[1]/div[2]/div/div/form/div[1]/div/input")).sendKeys("test@mail.com");

还有 driver.getWindowHandles() 但这里窗口处理程序的大小一直是 1

        driver.get("https://phptravels.com/demo/");
    driver.findElement(By.xpath("//*[@id=\"Main\"]/section[1]/div/div/div[2]/div/div[1]/a")).click();
    Thread.sleep(3000);
    driver.findElement(By.xpath("//*[@id=\"Main\"]/div/div[2]/table/tbody/tr[17]/td[1]/span[2]/a")).click();

    Thread.sleep(20000);
    
    String parentWindowHandler = driver.getWindowHandle(); // Store your parent window

    String subWindowHandler = null;

    Set<String>      handles  = driver.getWindowHandles(); // get all window handles
    Iterator<String> iterator = handles.iterator();
    while (iterator.hasNext()){
        subWindowHandler = iterator.next();
    }
   
    driver.switchTo().window(subWindowHandler); // switch to popup window
    driver.findElement(By.xpath("/html/body/div[1]/div/div[1]/div[1]/div[2]/div/div/form/div[1]/div/input")).sendKeys("yoyoyo");
    driver.switchTo().window(parentWindowHandler);  // switch back to parent window

有什么建议吗?

【问题讨论】:

  • 让我试试,请提供网址
  • 确定phptravels.com/demo -> 点击绿色按钮定价 -> 向下滚动并点击选择。然后弹出窗口将打开

标签: selenium selenium-webdriver


【解决方案1】:

弹出窗口在 iframe 中使用以下代码:

使用帧 id 切换

driver.switchTo().frame("pf_582434");

使用帧索引切换:

 driver.switchTo().frame(0);

【讨论】:

  • 我该怎么做?我无法投票,因为到目前为止我还没有获得 15 次投票
猜你喜欢
  • 2018-06-04
  • 1970-01-01
  • 1970-01-01
  • 2019-05-05
  • 1970-01-01
  • 2023-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多