以下是我正在测试的网页的快照:
<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( “// * [@类= \” menubox1 \ “] /表/ tbody的/ TR / TD /表/ tbody的// DIV”)
无法识别元素。我在这里错过了什么吗?
答案 0 :(得分: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>
答案 1 :(得分:0)
尝试使用以下定位器。
By.cssSelector("#tblMenuBar #divMenu")
or
By.cssSelector("#tdMenuBar > #tblMenuBar #divMenu")
P.S。 :如果某些东西具有动态定位器或不唯一,请尝试根据某个唯一定位器找到该元素。
答案 2 :(得分:0)
e1che的解决方案应该有效,如果你对特定的div感兴趣,比如// div [@ class ='menubox1'],你可以试试这个。这将选择具有特定类属性(menubox1)的div的子div,其id与divMenu匹配。
By.xpath(//div[@class='menubox1']/descendant::div[@id='divMenu'])