java selenium xpath查找包含空格的文本元素

时间:2018-01-30 17:29:35

标签: java selenium xpath

我想通过使用通用xpath搜索定义的文本找到一个元素。问题是,在一个元素中,文本被大量的空格分隔开来。

<div class="form-group">
    <label class="col-sm-4 control-label" 
    for="demo-hor-inputemail">AP Document
                                            Type *</label>
    <div class="form-group">
        <div class="col-sm-8"> 
            <div>
                <ul>
                    <li class="active-result>option</li>
                </ul>
             </div>
         </div>
    </div>
<div>

我目前的工作代码是这样的:

public static void dropdown(String dropdown, String option) {
    drop_down = "//*/label[contains(text(), '" + dropdown + "')]";
    driver.findElement(By.xpath(drop_down + "/following-sibling::div[1]").click;
    driver.findElement(By.xpath(drop_down + 
        "/following-sibling::div/descendant::li[starts-with(text(),'"+ option +"')]")).click;
}

我需要通过将文本“AP Document Type”作为下拉参数传递来找到此元素。

由于具有相同文本的元素,我不能仅使用“AP文档”。 我试过传递带有所有空格的文本但是没有用。 我尝试了一些这样的修饰符:[normalize-space(text()) = '"+dropdown+"']但没有运气。

到目前为止,我发现的唯一方法是将“Type *”作为下拉变量传递,但我正在寻求更好的解决方案,因为如果文本中没有*,这种情况就不会起作用。

1 个答案:

答案 0 :(得分:2)

感谢Florent B.和Andersson,我找到了解决方案。

"//label[contains(normalize-space(), '" + dropdown + "')]"效果很好。