我正在使用Selenium Chrome WebDriver最后一个版本构建一个小型自动化测试脚本,但现在当我尝试在iFrame中获取WebElement时,即使我切换到它,我也面临着一个问题 .
这是HTML的构建方式:
您可以检查,iFrame中还有另一个页面“镶嵌”,下面定义了按钮(这是我选择的部分):
这是我用来获取WebElement的方式(显然是失败的):
WebElement frameAperturar =
driver.findElement(By.xpath("//iframe[@title='Aperturar']"));
driver.switchTo().frame(frameAperturar);
asociarSiniestroButton = driver.findElement(By.xpath("//button[@aria-label='Asociar Siniestro']"));
asociarSiniestroButton.click();
这是我尝试获取WebElement时遇到的异常:
no such element: Unable to locate element: {"method":"xpath","selector":"//button[@aria-label='Asociar Siniestro']"}
(会话信息:chrome = 60.0.3112.113)
你知道我切换到框架后如何在iFrame中获取页面元素吗?
3 回答
您可以使用以下方法实际选择iFrame: -
帧(索引)
frame(帧的名称[或]帧的ID)
frame(WebElement frameElement)
defaultContent()
因此,您可以通过传递有关框架的任何上述信息进行切换 . 是的,您需要根据需要的操作每次切换
例:-
....在框架上执行你的行动
....在框架上执行你的行动
尝试以下XPath
要么
要么
要么
希望它能帮到你:)
我是selenium的新手,但看起来你的按钮实际上是'span'而xpath不会像这样工作,试试
//span[contains(text(),'Asociar Siniestro')]
使用此xpath