org.openqa.selenium.nosuchframeexception:在使用selenium和java的模式对话框中查找具有的元素时,无法定位框架

xlpyo6sf  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(426)

我想创建一个selenium测试,其中使用了一个模态对话框。如果我想使用div中的元素,我会得到一条错误消息:找不到元素。我还尝试切换到活动元素,或切换到帧。如果我这样做,我得到的错误,帧无法找到。
这是html代码:

我的想法是切换到模态:

driver.switchTo().frame(driver.findElement(By.xpath("/html/body/div[8]/div"));

这就是我的错误:
org.openqa.selenium.nosuchframeexception:找不到帧:805833b6-6961-41e5-8bdf-3393a28e0ad9
最后我想按一下模型里面的按钮。我希望有人能帮助我通过seleniumjava测试达到这个目的。

ecfdbz9o

ecfdbz9o1#

此错误消息。。。

org.openqa.selenium.NoSuchFrameException: Unable to locate frame: 805833b6-6961-41e5-8bdf-3393a28e0ad9

…意味着您已标识为 <iframe> 不是一个 <iframe> 事实上。
从html标记来看,元素似乎在一个模态对话框中,其中有两个按钮。要单击这两个按钮,您需要为 elementToBeClickable() 您可以使用以下任一定位器策略:
点击weiter cssSelector :

new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("button.btn.btn-primary[ng-show^='firstStep.state.spaces.length']"))).click();
``` `xpath` :

new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[@class='btn btn-primary' and text()='Weiter']"))).click();

点击abbrechen `cssSelector` :

new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("button.btn.btn-default[data-dismiss='modal']"))).click();
``` xpath :

new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[@class='btn btn-default' and text()='Weiter']"))).click();

参考

有关nosuchelementexception的详细讨论,请参见:
nosuchelementexception,selenium无法定位元素

相关问题