我想创建一个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测试达到这个目的。
1条答案
按热度按时间ecfdbz9o1#
此错误消息。。。
…意味着您已标识为
<iframe>
不是一个<iframe>
事实上。从html标记来看,元素似乎在一个模态对话框中,其中有两个按钮。要单击这两个按钮,您需要为
elementToBeClickable()
您可以使用以下任一定位器策略:点击weiter
cssSelector
:new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[@class='btn btn-primary' and text()='Weiter']"))).click();
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("button.btn.btn-default[data-dismiss='modal']"))).click();
```
xpath
:参考
有关nosuchelementexception的详细讨论,请参见:
nosuchelementexception,selenium无法定位元素