使用Firepath搜索时,xpath返回多个元素

时间:2016-06-01 14:29:02

标签: selenium selenium-webdriver testng

在我的应用程序中,使用xpath(firepath ext)搜索时会有一个元素列表。它如下所示:

import UIKit

class PageContentViewController: UIViewController {


    @IBOutlet weak var lblTitle: UILabel!

    @IBOutlet weak var imageView: UIImageView!


    var pageIndex: Int = 0
    var strTitle: String!
    var strPhotoName: String!


    override func viewDidLoad() {
        super.viewDidLoad()

        imageView.image = UIImage(named: strPhotoName)
        lblTitle.text = strTitle

    }
}

我需要遍历这些,因此我想到了捕获并将它们存储在

<i class="md-icon material-icons add_button">control_point</i>
<i class="md-icon material-icons remove_class">cancel</i>
<i class="md-icon material-icons remove_class">cancel</i>
<i class="md-icon material-icons remove_class">cancel</i>
<i class="md-icon material-icons remove_class">cancel</i>
<i class="md-icon material-icons remove_class">cancel</i>
<i class="md-icon material-icons remove_class">cancel</i>
<i class="md-icon material-icons add_button remove_class">cancel</i>

但是当我检查下面显示的尺寸时,它只返回1个元素。

@FindAll({@FindBy(xpath = "//*[@id='add_new_address']/div[5]/i")}) private List<WebElement> ctrlPtORCancelBtn; public List<WebElement> getCtrlPtORCancelBtn() { return ctrlPtORCancelBtn; }

我无法理解为什么元素的大小只有1而不是8。

我该如何处理这个问题。任何帮助表示赞赏。

ctrlPtORCancelBtn().size()

1 个答案:

答案 0 :(得分:1)

尝试在HTML面板中检查相同的内容,看看你看到多少个元素(非灰色的一个)使用FirePath有一些缺点(尽管它是我迄今为止用于定位元素的最佳工具)。 .HTML面板应该给你一个清晰的图片......如果没有,那么尝试使用WebDriverWait.presenceOfAllElementsLocatedBy()定位元素,看看它返回了多少元素