org.openqa.selenium,NoSuchElementException:没有这样的元素(按索引切换到帧)

bvjveswy  于 2022-10-22  发布在  Java
关注(0)|答案(2)|浏览(137)

我正在尝试学习 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”}“

j8ag8udp

j8ag8udp1#

找不到它,因为在您目标的iframe之前还有其他iframe。你想要的是第三帧(2)。您可以使用下面的xpath-//iframe设置断点并在开发工具(F12>Element>Ctrl+F)中检查页面。您将看到页面中有多少iframe。所以最好的方法是通过名称或id处理iframe,否则测试很容易失败。

2nc8po8w

2nc8po8w2#

希望这能奏效
driver.get(“https://demoqa.com/frames“);driver.manage().window().maximize();

driver.switchTo().frame(driver.findElement(By.id("frame2")));

    WebElement frame1 = driver.findElement(By.id("sampleHeading"));
    String text = frame1.getText();
    System.out.println(text);

相关问题