Selenium 祖先或自我选择也是祖先的兄弟姐妹

Selenium 祖先或自我选择也是祖先的兄弟姐妹,selenium,xpath,Selenium,Xpath,我在WebDriver中使用祖先或自我 我得到的结果是不正确的,我注意到WebDriver也选择了我祖先的前一个兄弟姐妹 我怎样才能避免呢 编辑 代码示例: <div class="model1"> <div class="ng-hide" id="1"> <div id="2"> <form class="model 3"> <div class="5"> <

我在WebDriver中使用祖先或自我

我得到的结果是不正确的,我注意到WebDriver也选择了我祖先的前一个兄弟姐妹

我怎样才能避免呢

编辑

代码示例:

<div class="model1">
   <div class="ng-hide" id="1">
   <div id="2">
       <form class="model 3">
           <div class="5">
           <div class="model 6">
           <div class="model 7">
              <div class="9">
                 <button id="try1">
                 <button id="try2">
现在,我做下一步:

List<WebElement> lstElm = driver.findElements(By.xpath("//button[@id="try2"]/ancestor-or-self::*"));

当我迭代lstElm并搜索它的类是否包含hide元素时,我看到xpath也返回该元素。但是这个元素是它的祖先的前辈,而不是它的祖先。相反,你认为,以开头的元素是它的祖先。查看您的HTML并注意如何开始,但从未在任何地方关闭:

<div class="model1">
   <div class="ng-hide" id="1"> <!-- This is not closed!!! -->
   <div id="2">
       <form class="model 3">
           <div class="5">
           <div class="model 6">
           <div class="model 7">
              <div class="9">
                 <button id="try1">
                 <button id="try2">
要获得预期的结果,您需要以下内容:

<div class="model1">
   <div class="ng-hide" id="1"></div> <!-- The div is closed right away. -->
   <div id="2">
       <form class="model 3">
           <div class="5">
           <div class="model 6">
           <div class="model 7">
              <div class="9">
                 <button id="try1">
                 <button id="try2">

使用此HTML,将在下一个之前关闭。

您是否有一个简短、清晰、简明且可理解的示例向我们说明问题?请提供HTML或xpath。无法理解您要找的是什么。@Arran我编辑了question@Vinay我编辑了这个问题,也许这只是你的例子中的一个输入错误,但正如我所写的,它是。。。