0

这是我正在测试的页面的快照:

<div class="menubox1">
  <table class="menubox1box1">
    <tbody>
      <tr class="menubox2">
        <td class="menubox22">
          <table class="menubox221">
            <tbody>
              <tr>
                <td class="menubox2211" id="tdMenuBar">
                  <table id="tblMenuBar">
                    <tbody>
                      <tr id="mytr">
                      <>
                      <div id="divMenu">

我必须使用 xpath 访问 div,但它上面有一个空节点。我应该如何处理这样的空节点?

我尝试构建这个: By.xpath("//*[@class=\"menubox1\"]/table/tbody/tr/td/table/tbody//div")

它无法识别元素。我在这里错过了什么吗?

4

3 回答 3

0

您当前的 XPATH 是错误的。有一个解决方案:

By.xpath("//div[@class='menubox1']/table/tbody/tr/td/table/tbody/tr/td/table/tbody/div")

试试下面这个简单的方法,告诉我发生了什么。

By.xpath("//div[@id='divMenu']")

PS:

你能解释一下你的空节点吗?

就像是 :

<table id="tblMenuBar">
  <tbody>
    <tr id="mytr">
    <>
    <div id="divMenu">
</table>

或者

<table id="tblMenuBar">
  <tbody>
    <tr id="mytr">
    <>
      <div id="divMenu">
    <>
</table>
于 2013-06-26T14:52:00.877 回答
0

试试下面的定位器。

By.cssSelector("#tblMenuBar #divMenu")

or

By.cssSelector("#tdMenuBar > #tblMenuBar #divMenu")

PS:如果某物具有动态定位器或不是唯一的,请尝试相对于某个唯一定位器定位该元素。

于 2015-06-11T06:04:34.393 回答
0

e1che 的解决方案应该可以工作,如果您对 //div[@class='menubox1'] 这样的特定 div 感兴趣,可以试试这个。这将选择具有特定类属性(menubox1)的 div 的子 div,其 id 匹配 divMenu。

By.xpath(//div[@class='menubox1']/descendant::div[@id='divMenu'])   
于 2015-06-12T13:37:37.990 回答