【问题标题】:How to specify this XPATH?如何指定这个 XPATH?
【发布时间】:2013-07-23 03:08:11
【问题描述】:

鉴于这是我的 DOM,它不属于我,所以我不能以任何方式修改它,我如何根据产品 ID 内部文本选择正确的“单击此处”链接?请注意,此代码中有 3 个产品,并且链接可以出现在页面的任何位置,因此我必须能够仅根据产品 ID 进行选择。这是针对 PHP 的 behat/mink 功能测试,到目前为止,我根据产品 ID 进行选择的每一次尝试都失败了。

<div id = "container">
    <div class = "product">
        <div class="product-detail">
            <span class = "product-id">123-456-789</span>
        </div>
        <div class = "leftblock">
            <div class = "product-info">
                <a><span>Click Here</span></a>
            </div>
        </div>
    </div>

    <div class = "product">
        <div class="product-detail">
            <span class = "product-id">456-789-012</span>
        </div>
        <div class = "leftblock">
            <div class = "product-info">
                <a><span>Click Here</span></a>
            </div>
        </div>
    </div>

    <div class = "product">
        <div class="product-detail">
            <span class = "product-id">345-678-901</span>
        </div>
        <div class = "leftblock">
            <div class = "product-info">
                <a><span>Click Here</span></a>
            </div>
        </div>
    </div>
</div>

例如,这个 xpath 失败了:

//span[text()='Click Here']/following::span[@class='product-id' and text()='" . $productId . "']

我尝试过使用祖先和其他东西,但还没有。我什至不确定我是否使用了正确的字符。有什么想法吗?

【问题讨论】:

    标签: php xpath selenium mink


    【解决方案1】:

    试试下面的 xpath。用新的产品 ID 替换产品 ID。希望这会有所帮助

    //div[div/span[text() = '123-456-789']]/descendant::a/span[text() = '点击这里']

    【讨论】:

      【解决方案2】:

      我想通了。我可以选择 product-id 类,然后使用 /.. 上升到父级,然后使用 / 回到正确的目标所在的位置。

      【讨论】:

      • 提供 XPath,以便未来的访问者可以看到您的想法
      猜你喜欢
      • 2012-07-11
      • 2016-12-11
      • 1970-01-01
      • 2020-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多