无法找到元素异常 - Java Selenium

Unable to locate element exception - Java Selenium

提问人:rusty 提问时间:8/29/2023 最后编辑:Peter Mortensenrusty 更新时间:8/31/2023 访问量:35

问:

由于超出我的原因,我收到了无法找到元素异常。

这是网站: https://bo.competentfinman.com:1467/capexweb/capexweb/

这是我的代码:

package artifactidshilpipackage;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;
import io.github.bonigarcia.wdm.WebDriverManager;

public class shilpi {

    public static void main(String[] args) throws Throwable {
        WebDriver driver;
        WebDriverManager.firefoxdriver().setup();
        driver = new FirefoxDriver();
        driver.get("https://bo.competentfinman.com:1467/capexweb/capexweb/");
        Thread.sleep(3000);
        driver.switchTo().frame("main");
        driver.findElement(By.id("dfuserid")).sendKeys("***");
        Thread.sleep(5000);
        driver.findElement(By.name("dfpassword")).sendKeys("***");
        Thread.sleep(5000);
        driver.findElement(By.name("B1")).click();
        Thread.sleep(5000);
        driver.findElement(By.xpath("/html/body/div[1]/a")).click();
        Thread.sleep(5000);
        driver.findElement(By.xpath("/html/body/table[2]/tbody/tr/td/input")).click();
        Thread.sleep(5000);
        driver.findElement(By.name("topsegment")).click();
        Thread.sleep(5000);
        Select dropdown = new Select(driver.findElement(By.name("topsegment")));
        dropdown.selectByValue("F&O");
        driver.findElement(By.name("nodeIcon3")).click();
        Thread.sleep(5000);
        driver.findElement(By.id("itemTextLink5")).click();
        Thread.sleep(5000);
        driver.findElement(By.name("B1")).click();
        // String a
        // driver.findElement(By.xpath("/html/body/table[2]/tbody/tr[108]/td[2]/b")).getText();
        // int b = Integer.parseInt(a);
    }
}

当我尝试在某人的建议下使用嵌套框架时,我遇到了同样的问题。嵌套框架不起作用。但我相信我是正确的框架......

java html selenium-webdriver iframe webautomation

评论

1赞 EJoshuaS - Stand with Ukraine 8/29/2023
小建议:你能编辑标题以更具体地回答问题吗?这将帮助可能知道答案的人(或面临类似问题的人)更容易找到问题。
1赞 Shawn 8/29/2023
您可以编辑您的问题并共享错误堆栈吗?

答:

0赞 Shawn 8/29/2023 #1

以下行不正确:

driver.findElement(By.id("dfuserid")).sendKeys("***");

请注意下面的 HTML。它是我们需要使用的属性,而不是 .@name@id

Enter image description here

所以代码应该是:

driver.findElement(By.name("dfuserid")).sendKeys("***");

评论

0赞 rusty 8/29/2023
哦。我的上帝。 这不可能。我到处找。已经2天了。我的头上还剩下 3 个毛囊!?我什至尝试了xpath??这怎么可能??我太傻了。我该怎么办?我会删除这个问题吗?谢谢你的回答,请也来用棒球棒砸我。
0赞 Shawn 8/29/2023
这很正常,别担心。我们都这样做。编程:)的一部分很高兴它有帮助。当有人回答我的问题时,我该怎么办?
0赞 Peter Mortensen 8/31/2023
请查看 为什么在提问时不上传代码/错误的图片? (例如,“图像只能用于说明无法以任何其他方式阐明的问题,例如提供用户界面的屏幕截图。做正确的事情(它也包括答案)。提前致谢。