【问题标题】:No such element for an element inside of a dialog对话框内的元素没有这样的元素
【发布时间】:2019-09-13 23:44:02
【问题描述】:

当我尝试单击对话框中托管的元素时,返回 NoSuch 元素异常

error returned

我尝试过使用活动元素并切换到默认内容,但没有成功。 这部分代码中间没有 iframe,因此不需要切换到 iframe 的行

代码如下:

public void editarDatosContacto(String contacto, String canal){
        openEditarContacto(botonAgregarCel());
        waitDefaultTime();
        getDriver().switchTo().parentFrame();
        getDriver().switchTo().parentFrame();
        WebDriverWait block = new WebDriverWait(getDriver(),10);
        block.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id=\"midialogBpf01\"]/div/object")));
        WebElement modal = getDriver().findElement(By.xpath("//*[@id=\"midialogBpf01\"]/div/object"));
        WebElement item;
        item = modal.findElement(By.xpath("//div[@class='row']/div/div/div[1]/div/div//a[@data-toggle='modal']"));
        item.click();
        Select selectDato = new Select(selectTipo());
        selectDato.selectByVisibleText(contacto);

}

没有找到元素的行是这样的:

item = modal.findElement(By.xpath("//div[@class='row']/div/div/div[1]/div/div//a[@data-toggle='modal']"));

这就是应用程序 html code to find the element

该应用只能通过 vpn 访问,因此我无法共享它。

【问题讨论】:

  • 我认为这与dynamics-crm 标签无关。您可能应该重新标记您的问题以获得更好的结果

标签: javascript java dialog nosuchelementexception


【解决方案1】:

找到解决方案!

我必须先像这样切换到模态

WebElement modal = getDriver().findElement(By.xpath("//*[@id=\"midialogBpf01\"]/div/object"));
WebElement item;
driver.switchTo.frame(modal);
item = getDriver().findElement(By.xpath("//div[@class='row']/div/div/div[1]/div/div//a[@data-toggle='modal']"));
item.click();

所以这就是解决方法。

我希望这可以帮助遇到同样问题的人。

谢谢

【讨论】:

    猜你喜欢
    • 2021-07-29
    • 2013-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-18
    • 1970-01-01
    相关资源
    最近更新 更多