根据其他条件从Xpath获取HTML列表位置

时间:2018-02-28 10:18:49

标签: c# html selenium xpath

作为 this question 的后续内容,我还没有得到可行的答案,我一直在调查一项工作,但再次陷入困境。

基本上我想知道您是否能够根据某些搜索条件从HTML获取列表位置?

这将允许我重新创建按钮的实际xpath,看起来像//*[@id="content"]/div/div/div/div/ul/li[3]/div[1]/div[2]/div/button[1]

我尝试了一些变体,但它总是返回null。

这是我的最新试用

var item 
=  driver.FindElement(By.XPath($"//span[text()='{environment}']/ancestor::li"));
            var id = item.GetAttribute("li").IndexOf("li");

HTML看起来像这样 - enter image description here

突出显示的行是搜索字词'{environment}'(在此示例中启用QA),我尝试点击的按钮位于下方。

1 个答案:

答案 0 :(得分:1)

试试这个例子:

List<WebElement> th = table.FindElements(By.tagName("li"));
int listsize = th.size();
for(int i=0;i<listsize;i++)
{
    String listtext = th.get(i).getText();
    if(listtext.equals("Environment"))
    {
       return i;
    }
}