我想访问层次结构上方的DOM元素,以访问我有权访问的元素。
在Attached ScreenShot中,我想访问#ntsDiv_1的Grand Grand Grand Parent的#pRow_22。但我只能访问#ntsDiv_1。请建议我在这种情况下做什么
html代码是这样的: -
<tr id="pRow_22" style="border-bottom: 0;">
<td class="nameCell" style="border-bottom: 1px solid #CCCCCC;">
<div id="seller_22" class="product-sellercell">
<a id="pLogoLink_22" target="_blank" href="/norob/ClickTracker.somethins..." onclick="setMerchLb('eComElectronics.com')" rel="nofollow">
<div>
<a id="ntsLink_1" rel="nofollow" onclick="return false;" href="#">
</div>
<div id="ntsDiv_1" class="mlt-pop-container" style="width: 250px; text-align: left; white-space: normal; top: 2340px; left: 131px; visibility: hidden;">
<div class="mlt-pop-bg">
</div>
.
.
</div>
</td>
答案 0 :(得分:5)
尝试使用xpath
.//a[contains(@id,'ntsLink_1')]/ancestor::tr
答案 1 :(得分:1)
试试这个:
假设这是层次结构:
<div class="1">............ (suppose it's div 1 open)
<div class="2">........ (div 2 open)
<div class="3">....... (div 3 open)
</div>..... (div 3 closed)
<div class="4">...... (div 4 open)
</div>..... (div 4 closed)
</div>......... (div 2 closed)
</div>......... (div 1 closed)
现在,我们想要访问div 4
注意:div 3和div 4属于同一级别,这两个是div 2的子级,其父级为div 1
我们想要访问第4类
我们使用xpath做它但是div 4的类不是唯一的而且类1是,所以你可以这样遍历它:
By.xpath( “.// DIV [@类= '1'] / DIV / DIV [2]”)
解释:div [2]意味着它将访问类1,它具有类3的div,其子类有两个div类class 3和class 4但我想访问第二个div有4级,所以div [2]。
<强> cssSelector 强>
有时我们无法访问路径,因此我们可以使用css选择器访问它,假设我们有一个这样的场景
<div class="1">
<rect class="2">
<text class="3">
</text>
</rect>
</div>
访问文本类
我们使用By.cssSelector作为:
By.cssSelector( “文本[类= '3']”);