【问题标题】:Selenium webdriver: Unable to send keys In a new popup windowSelenium webdriver:无法在新的弹出窗口中发送密钥
【发布时间】:2018-11-04 22:01:45
【问题描述】:

使用 selenium web-driver 我试图将区域名称放在文本框中 在新的弹出屏幕中,然后单击保存按钮。我为此使用以下脚本

String mainWindowHandle1=driver.getWindowHandle();

driver.switchTo().window(mainWindowHandle1 );

driver.findElement(By.id("MainContent_imgAddRegion")).click();
Thread.sleep(5000);

java.util.Set<String> s1 = driver.getWindowHandles();

Iterator<String> ite1 = s1.iterator();
while(ite1.hasNext())
{
    String popupHandle=ite1.next().toString();
    if(!popupHandle.contains(mainWindowHandle1))
    {
        driver.switchTo().window(popupHandle).findElement(By.id("txtRegionName")).sendKeys("South Region");
        Thread.sleep(3000);
        driver.findElement(By.id("txtRegionName")).sendKeys("South Region");
        Thread.sleep(1000);
        driver.findElement(By.id("btnSave")).click(); 

通过这样做,我可以打开新的弹出屏幕来输入区域,但是我无法发送密钥 [区域名称] 并保存文本。即使我在运行测试时也没有收到任何失败的报告。

【问题讨论】:

  • 切换到弹窗后,可以和它的任何元素进行交互吗?或者是 txtRegionName 元素特有的问题?

标签: selenium-webdriver


【解决方案1】:

这可能是由于 iFrame 的存在。 查看 HTML 代码并检查您尝试将密钥发送到的文本字段和保存按钮是否包含在某种 iFrame 中。 如果是这样,您将需要执行以下操作:

driver.switchTo().defaultContent();
driver.switchTo().frame("framename");
driver.findElement(By.id("txtRegionName")).sendKeys("South Region");
driver.findElement(By.id("btnSave")).click();

希望对你有帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-21
    • 2022-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-26
    相关资源
    最近更新 更多