【问题标题】:Selenium Testing - Text addition via pop up window is not getting savedSelenium 测试 - 通过弹出窗口添加的文本未保存
【发布时间】:2020-04-18 22:06:39
【问题描述】:

我正在尝试使用 selenium 网络驱动程序自动化网站。 在网站上,有一个弹出表单用于创建带有文本字段的门名称以输入文本。使用我尝试做的硒,弹出窗口但没有保存给定的文本。弹出它工作正常。需要指南来完成操作。

我使用的方法如下:

Alert alert=driver.switchTo().alert();
driver.switchTo().alert().sendKeys("New Gate");
alert.accept();
System.out.println(alert.getText());
  1. 元素由 Xpath 元素定位器标识。
  2. 我还提供了文本和 URL,这是我从堆栈中获得的另一种方法。

【问题讨论】:

  • 您如何尝试获取文本字段的 id?

标签: java selenium selenium-webdriver automated-tests


【解决方案1】:

如果它是一个警报,那么按照您的要求步骤正确处理应该是

  1. 切换到提醒
  2. 输入文字
  3. 获取输入文本
  4. 接受

    Alert alert=driver.switchTo().alert();
    alert.sendKeys("New Gate");
    System.out.println(alert.getText());
    alert.accept();`
    

如果是模型弹窗,则尝试定位弹窗元素并直接使用发送键

示例代码:

WebDriverWait wait = new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.your_popup_locator));
driver.findElement(By.you_textbox_locator).sendKeys("expected text");

【讨论】:

    【解决方案2】:

    您需要先切换到弹出窗口。然后您可以访问弹出窗口中的元素。

     // save your main window handle
        String MainWindow=driver.getWindowHandle();
    
        // Get all window handle    
        Set<String> handles = driver.getWindowHandles();
    

    现在,对于句柄中的每个 childHandle,

    driver.switchTo().window(childHandle );
    // check if your textField present. 
    // If found, do your actions and break;
    //  else switch to next window
    

    最后,再次切换到主窗口。

     driver.switchTo().window(MainWindow);
    

    【讨论】:

    • 我们试过这个..我已经编辑了这个问题。请也看一下。谢谢
    • 这是一个弹出窗口,对吧? switchToAlert 不起作用。编辑我的答案。
    猜你喜欢
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-21
    相关资源
    最近更新 更多