ChromeDriver无法始终从列表框中选择正确的项目

时间:2014-03-14 10:04:23

标签: selenium-webdriver selenium-chromedriver

在我的应用程序中,有一个包含在范围

中的列表框

span class ="某些课程" unselectable =" on">请选择一个实体

  <li ...
     <dd class="some class" style="...." >Please select an entity</dd>
  <li ...
     <dd class="some class" style="...." >First Element</dd>
  <li ...
     <dd class="some class" style="...." >Second Element</dd>
  <li ...
     <dd class="some class" style="...." >last Element</dd>

我想根据测试用例从列表中选择所需的元素。

要实现这一点,我点击顶部元素,这会导致列表的扩展。 然后我试图使用动态xpath表达式找到我想要的元素。 如果我找到该元素,我会对其执行单击操作。 然后我回去检查是否正确选择了元素。 以下代码在Firefox上的运行非常一致(100%),但它在Chrome上的一致性约为40%。知道为什么会这样吗?

public boolean SelectEntity(String EntityType) {

WebElement topElement = Driver.Instance.findElement(By.cssSelector("span[class=\"k-select\"]"));

WebDriverWait wait = new WebDriverWait(Driver.Instance, 3);
wait.until(ExpectedConditions.elementToBeClickable(topElement));
topElement.click();
String finalXPath = subXpathEntityNameFirstPart + EntityType+ subXpathEntityNameEndPart;

wait = new WebDriverWait(Driver.Instance, 3);
wait.until(ExpectedConditions.elementToBeClickable(By.xpath(finalXPath)));

WebElement listElement = Driver.Instance.findElement(By.xpath(finalXPath));
    if (listElement != null) {
        listElement.click();
        String selectedElementXPath = "//span[text()='" + EntityType+ "']";
        try{
                   WebElement selectedDropDownElement = Driver.Instance.findElement(By.xpath(selectedElementXPath));
                   if (selectedDropDownElement != null) {
                 return true;
                   }    
            } catch(Exception e) {
                 return false;
         }
     }
}

0 个答案:

没有答案