【问题标题】:How to write xPath for the child element from the parent element in Protractor如何从量角器中的父元素为子元素编写xPath
【发布时间】:2019-10-01 01:39:07
【问题描述】:

我正在进行量角器测试,我在其中按类找到了一个元素。现在,我想根据我之前找到的元素找到它的兄弟。

如下面的代码所示,我通过“element(by.css(locate))”找到了span。现在基于这个元素,我想点击“a”链接。在具有不同类名的页面上有很多像这样的相同跨度。所以,我想根据选定的类跨度点击特定的“a”标签。

<div>
<span class="123456">
</span>
<a ng-click="openLink()" class="ng-binding">temp</a>

</div>

我希望点击一个“a”元素,但我不能使用“element(by.css('[ng-click="openlink"]'))”,因为有很多“a”标签相同的 ng-click 页面。

我尝试了下面的代码,但没有成功。

        locate = ".123456";
        var icon = element(by.css(locate));
        element(by.xpath(icon + ' > a')).click();

【问题讨论】:

    标签: angularjs xpath protractor


    【解决方案1】:

    试试下面这个

    var ele = element(by.cssContainingText('div > a', 'temp'));
    
    ele.click();
    

    【讨论】:

    • 没有找到使用定位器的元素:By(css selector, .123456 > a)
    • 这是我没有写await时的结果。但是,如果我写 await 那么它会给我“Unexpected Identifier”错误。
    • 你能再检查一遍问题吗?
    • @Virus 你想点击标签a吗?
    • 是的,我想点击元素 a。
    【解决方案2】:

    我正在为您提供在量角器测试用例中通过链接文本查找元素的代码。

    这里是代码示例:

    var myElement = element(by.css('span.123456 + a'));
    myElement.click();
    

    上面的代码找到带有“temp”文本的链接,然后点击它。

    希望这会对你有所帮助。

    【讨论】:

    • 嗨 Vikas ... 很抱歉,页面上有很多带有临时值的 标签。
    • 我已经更新了答案。Virus,尝试一次
    • 是的,这个应该可以。 + 用于查找以下同级。如果你想用 XPath 达到同样的效果,请使用 //*[@class="123456"]/following-sibling::a
    【解决方案3】:

    尝试以下xpath 并单击该元素。

    element(by.xpath('//a[@class="ng-binding"][text()="temp"]')).click(); 
    

    【讨论】:

    • 使用定位器找不到元素
    【解决方案4】:

    我尝试使用以下功能。

    element(by.xpath('//*[@class="123456"]/following-sibling::a')).click();
    

    它通过但没有点击元素。

    【讨论】:

    • 这对我来说是正确的定位器,您在等待该命令吗?
    • 我也试过做“var sgpt = require('sg-protractor-tools'); sgpt.scroll.scrollTo(element(by.css(locate)));”但仍然没有运气
    • @Virus ,你可能需要等到找到可以点击的链接
    • 在使用 xpaths 时检查定位器是否正确的最简单方法是打开 chrome 开发工具来查找源代码,直接使用 xpath example。您的定位器是正确的,所以它一定是另一个问题。要回答您的问题,您只需要在您的控制流被禁用时等待点击,我刚刚注意到您在另一条评论中提到了它,所以想仔细检查一下。
    猜你喜欢
    • 1970-01-01
    • 2018-07-09
    • 1970-01-01
    • 1970-01-01
    • 2017-04-16
    • 2015-11-30
    • 2021-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多