0

我想访问层次结构中的 DOM 元素到我可以访问的元素。

在附加的屏幕截图中,我想访问 #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>

4

2 回答 2

5

尝试使用 xpath

.//a[contains(@id,'ntsLink_1')]/ancestor::tr
于 2013-02-25T10:56:26.120 回答
1

试试这个

By.cssSelector("a[id='ntsdiv_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[@class='1']/div/div[2]")

解释: div[2] 表示它将访问具有类 3 的 div 的类 1,其子类具有类 3 和类 4 的两个 div 但我想访问具有类 4 的第二个 div 所以,div [ 2]。

选择器

有时我们无法访问路径,所以我们可以使用 css 选择器访问它,假设我们有这样的场景

<div class="1">
    <rect class="2">
         <text class="3">
         </text>
    </rect>
</div>

访问文本类

我们使用 By.cssSelector 作为:

By.cssSelector("text[class='3']");

于 2016-11-24T09:19:36.810 回答