我在使用selenium webdriver检索所有列表项时遇到问题

时间:2016-03-04 12:39:31

标签: selenium

问题:我在div类msb-container中有一个项目列表。 。列表中有162个项目。我想点击列表中的第150个项目。还有一个滚动条,通过它我们可以去其他元素并选择它

html的外观如下:

<div class="mCSB_container" style="position:relative; top:0;">
<ul id="ul-countries">
<li>
 <input id="country-3" type="checkbox" name="c:3">
<label for="country-3">Afghanistan</label>
</li>
<li>
<input id="country-6" type="checkbox" name="c:6">
<label for="country-6">Albania</label>
</li>
---other countries 
 </li>
</ul>
</div>

我的代码如何显示:

IList<IWebElement> countryList = driver.FindElements(By.XPath("//*[@id='ul-countries']/li"));

    for (int i = 0; i <= countryList.Count; i++)
     {
          string temp = countryList.ElementAt(i).Text;
           if (countryList.ElementAt(i).Text == "Brazil")
           {
               //do something 
           }
     }

我得到了162个国家的正确数量,但我认为它们没有正确填充。当我尝试从第15个国家检索文本时,它给我空的结果。它只填充那些列表项目的文本可以在屏幕上看到。虽然当我检查元素时,我可以通过html看到列表项中的所有必需数据,但不是通过我的代码。我试着把睡眠放到但没有运气。

请提供您的意见以解决上述问题。 | 最诚挚的问候

1 个答案:

答案 0 :(得分:0)

IList<IWebElement> countryList = driver.FindElements(By.XPath("//*[@id='ul-countries']/li"));

for (int i = 0; i <= countryList.Count; i++)
 {
      string temp = countryList.ElementAt(i).findElement(By.CSS("label")).getText();
       if (temp.equals("Brazil"))
       {
           //do something 
       }
 }