【问题标题】:How to get parent of parent's element in webdriverIO?如何在 webdriverIO 中获取父元素的父元素?
【发布时间】:2021-11-12 06:29:10
【问题描述】:

我正在浏览器堆栈上运行 iPhone Safari 测试。但是点击命令不适用于浏览器堆栈上的 iPhone safari 选择器似乎正确找到了一个元素,但点击什么也不做,也没有错误,没有动作,只是默默地不执行点击。

在 Android 设备上完美运行相同的测试。这是 dom 结构的问题,我想点击父元素的父元素。

【问题讨论】:

    标签: webdriver-io


    【解决方案1】:

    应该可以使用xpath axes,特别是祖先的xpaths

    <div class="one">
      <div class="two">
        <input>
      </div>
    </div>
    

    要查找输入的父元素,您可以使用类似的 xpath

    browser.$('//input//ancestor::div[1]') //finds div with class=two
    browser.$('//input//ancestor::div[2]') //finds div with class=one
    

    听起来你需要

    browser.$('//input//ancestor::div[2]') //finds div with class=one
    

    【讨论】:

    • 谢谢!但我不想使用 xpath。我们只遵循 CSS 定位器策略。
    • $('..') 实际上也是一个 xpath 选择器,而不是 css
    【解决方案2】:

    我尝试了下面的代码 sn-p 并为我工作。

    const element:WebdriverIO.Element = $('selctor');
    let parentEle = element.$('..').$('..');
    

    【讨论】:

    • 这是您在此处使用的 xpath。使用 css 找到的元素后跟使用 xpaths 找到的两个链式元素
    • 感谢您的澄清
    猜你喜欢
    • 2013-06-13
    • 2019-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多