硒+ Java的。 click或sendKeys不使用通过循环接收的元素

时间:2016-04-06 08:04:11

标签: java selenium

尝试点击收到的元素但不能出于未知原因。 周期是:

public WebElement element(String title) {
        for (WebElement el : list) {
            if (el.getText().equals(title)) {
                return el;
            }
        }
        return null;
    }

并点击只是

click(element("title"));

...但是当我直接指定元素时:

click(...findElement(By.xpath("//*[@id='id']//span[position ()>1]//*[text()[contains(.,'title')]]"));

一切都很完美。

May metter请求的元素位于之前打开的div中。 谢谢。

2 个答案:

答案 0 :(得分:0)

foreach循环中的if语句可能返回null并退出。这就是为什么当价值直接传递时,它起作用了。 为了确保您可能需要调试它。看到这段代码,这是我能给你的唯一提示......

答案 1 :(得分:0)

通过在元素xpath中添加/ a来解决这个问题:

public WebElement element(String title) {
    for (WebElement el : list) {
        if (el.getText().equals(title)) {
            return el**.findElement(By.xpath("a")**;
        }
    }
    return null
}

奇怪的是,没有“a”的xpath直接工作,并且没有通过循环......