【问题标题】:Getting unable to identify the xpath where as i copied xpath from IDE and using in my code当我从 IDE 复制 xpath 并在我的代码中使用时,无法识别 xpath
【发布时间】:2019-12-23 01:26:44
【问题描述】:

我正在尝试使用 selenium 定位器查找元素,但无法找到使用所有定位器尝试的元素

在尝试通过所有定位器查找元素后,我 sed selenium IDE 并从 IDE 复制 xpath 并使用但仍然收到相同的错误消息

System.setProperty("IEDriverServer", "C:\\Users\\cc301438\\Downloads\\Browser-Setup\\Drivers\\IEDriverServer_x64_3.14.0\\IEDriverServer.exe");

WebDriver driver=new InternetExplorerDriver();
            driver.get("https://netbank.nedsecure.co.za/Browser/Brands/Nedbank/Logon/Logon.aspx");

        driver.findElement(By.id("ProfileId")).sendKeys("46732258");
        driver.findElement(By.id("PinNo")).sendKeys("8026");
        driver.findElement(By.id("Password")).sendKeys("test123");
        driver.findElement(By.xpath("img[@id='LoginPagelet_LogonID']")).click();

        driver.quit();

错误

线程“主”org.openqa.selenium.NoSuchElementException 中的异常: 无法使用 xpath == img[@id='LoginPagelet_LogonID'] 找到元素 (警告:服务器没有提供任何堆栈跟踪信息)对于 有关此错误的文档,请访问: http://seleniumhq.org/exceptions/no_such_element.html 构建信息: 版本:'2.3.0',修订:'未知',时间:'2011-08-03 19:22:45' 系统信息:os.name:'Windows 10',os.arch:'amd64',os.version: '10.0', java.version: '1.8.0_151' 驱动程序信息: driver.version: RemoteWebDriver 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:423) 在 org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:131) 在 org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:105) 在 org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:405) 在 org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:193) 在 org.openqa.selenium.remote.RemoteWebDriver.findElementByXPath(RemoteWebDriver.java:266) 在 org.openqa.selenium.By$ByXPath.findElement(By.java:323) 在 org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:185) 在 com.firstTest.SimpleDemo.Login.main(Login.java:33)

【问题讨论】:

  • 你应该检查 xpath 的语法。它应该以'//'开头。应该是这样 - By.xpath("//img[@id='LoginPagelet_LogonID']")
  • 感谢上述解决方案正在运行

标签: selenium


【解决方案1】:

@user3686241,嗨。 使用以下最佳 XPath 定位器实践为您附加 PDF:

所以在您的情况下,正确的定位器应该看起来: .....

 driver.findElement(By.id("Password")).sendKeys("test123");
 driver.findElement(By.xpath("//img[@id='LoginPagelet_LogonID']")).click();

 driver.quit();

两个// 表示 - 查找 HTML 页面上所有带有 img 标签和 ID 属性等于 LoginPagelet_LogonID 的元素。

【讨论】:

    猜你喜欢
    • 2021-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-25
    相关资源
    最近更新 更多