我正在尝试学习 selenium ,但这一步我遇到了困难。尝试用索引查找帧,但失败了,但当我尝试用字符串查找时,它成功了。那么,找到带索引的帧有什么问题呢。这是我的密码。
公共类Test3{
WebDriver driver;
@Test
public void test_3(){
System.setProperty("webdriver.chrome.driver","drivers/chromedriver.exe");
driver = new ChromeDriver();
driver.get("https://demoqa.com/frames");
driver.manage().window().maximize();
//driver.switchTo().frame("frame1");
driver.switchTo().frame(0);
WebElement frame1 = driver.findElement(By.id("sampleHeading"));
String text = frame1.getText();
System.out.println(text);
}
}
错误消息:“org.openqa.selenium.NoSuchElementException:无此类元素:无法找到元素:{”method“:”css selector“,”selector”:“#sampleHeading”}“
2条答案
按热度按时间j8ag8udp1#
找不到它,因为在您目标的iframe之前还有其他iframe。你想要的是第三帧(2)。您可以使用下面的xpath-
//iframe
设置断点并在开发工具(F12>Element>Ctrl+F)中检查页面。您将看到页面中有多少iframe。所以最好的方法是通过名称或id处理iframe,否则测试很容易失败。2nc8po8w2#
希望这能奏效
driver.get(“https://demoqa.com/frames“);driver.manage().window().maximize();