Java HTML dom中存在多个主体节点,因此Selenium无法在dom中找到该元素

Java HTML dom中存在多个主体节点,因此Selenium无法在dom中找到该元素,java,html,selenium,xpath,selenium-webdriver,Java,Html,Selenium,Xpath,Selenium Webdriver,我正在尝试自动化一个有多个HTML头和体标记的应用程序。下面是提供的示例。我尝试了使用xpath、id、类等所有可能的方法。它不能单独用于此应用程序,因为它是DOM中嵌入的HTML页面。我猜,JavaScript会在页面中加载一个新的HTML页面 尽管XPath在Chrome浏览器中工作,但当我将其放入脚本并运行时,它会引发一个异常: 线程“main”org.openqa.selenium.NoSuchElementException中出现异常:无法找到元素://*[text()='Contin

我正在尝试自动化一个有多个HTML头和体标记的应用程序。下面是提供的示例。我尝试了使用xpath、id、类等所有可能的方法。它不能单独用于此应用程序,因为它是DOM中嵌入的HTML页面。我猜,JavaScript会在页面中加载一个新的HTML页面

尽管XPath在Chrome浏览器中工作,但当我将其放入脚本并运行时,它会引发一个异常:

线程“main”org.openqa.selenium.NoSuchElementException中出现异常:无法找到元素://*[text()='Continue']

如何解决这个问题

HTML DOM示例:

<html class="UShellFullHeight">
<head>
<style id="antiClickjackStyle" type="text/css">
        body {
            display : none !important;
        }
    </style>
</head>
<body class="UiBody UShellFullHeight" role="application">
    <div id="canvas" class="UShellFullHeight"></div>
    #document
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html id="home" lang="EN">
       <head>
         <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
       </head>
       <body>
          .
          .
          .
     <span id="WD8A-cnt" class="urNoUserSelect lsButton--contentlsControl--centeraligned  urBtnCnt" style="pointer-events:none;">
          <span class="lsButton__text " id="WD8A-caption" style="white-space:nowrap;">Continue</span>
    </span>
</body>
</html>
</body>
</html>

身体{
显示:无!重要;
}
#文件
.
.
.
继续
尝试使用标签:

//span[text()='Continue']

此示例的最佳解决方案是使用id,此元素的id为:

driver.findElement(By.id("WD8A-caption"));
或者这个xpath是相同的

//span[@id='WD8A-caption']

尝试手动创建xpath 或


元素有id,还有类名driver.findElement(By.className(“lsButton\uu text”))

非常感谢大家抽出时间。我自己得到了答案。 答案是我需要切换框架并对元素进行操作

切换帧

driver.switchTo().frame("id");

在截短HTML的同时,你已经从HTML中截取了相关的有用的
。是的,我特意这样做是为了让事情变得清晰。我希望这是可以理解的。如果没有,帮我这里还需要什么谢谢大家。我无论如何都得到了答案,我尝试了使用id、xpath和类的所有可能性。它并不特别适用于这个应用程序,因为它是HTML页面中嵌入的HTMLpage。