无法在java中选择aria-activedescendant组合框元素

时间:2017-05-05 07:39:08

标签: html selenium combobox

我发现很难从组合框元素中选择项目。这个组合框是不同的。当我拖下项目时,我可以看到该项目的实际价值(即aria-activedescendant =“react-select-4-option-3”)。选择特定项目后,该值已更改为“aria-activedescendant =”react-select-4 - value“”。 Plz建议我点击该项目的最佳解决方案。你必须在html代码下的输入部分特别注意这个“aria-activedescendant =”react-select-4 - value“”。

尝试使用以下代码。我只能单击组合框元素而不是值。我使用id =“react-select-4 - value”来单击组合框,它的错误为“元素在点上无法点击”。从技术上讲,系统理解错误。

    public void ScrollAndClickOnElement(String loacator,String LocatorValue)
{
    WebElement element = null;
    if(loacator.equalsIgnoreCase("cssSelector"))
         element = driver.findElement(By.cssSelector(LocatorValue));
    else if(loacator.equalsIgnoreCase("xpath"))
         element = driver.findElement(By.xpath(LocatorValue));
    else if(loacator.equalsIgnoreCase("id"))
         element = driver.findElement(By.id(LocatorValue));
    ((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView(true);",element);
    element.click();
}

public void WaitAndClickElement(String locatorType,String locatorVaue)
{
    WebDriverWait wait = new WebDriverWait(driver,50);

    if(locatorType.equalsIgnoreCase("cssSelector"))
        wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector(locatorVaue))).click();


    else if(locatorType.equalsIgnoreCase("xpath"))
        wait.until(ExpectedConditions.elementToBeClickable(By.xpath(locatorVaue))).click();

    else if(locatorType.equalsIgnoreCase("id"))
        wait.until(ExpectedConditions.elementToBeClickable(By.id(locatorVaue))).click();
}
ScrollAndClickOnElement("id", AssessmentPageData.ElevatorManufacturer);
WaitAndClickElement("cssSelector",AssessmentPageData.Appollo);

引用此link并使用'select'方法,但它错误为“元素应该已经”选择“但是”是“span”“

1 个答案:

答案 0 :(得分:0)

最后找到以下解决方案,

public void SelectBootStrap(String textval){
    WebElement listElement = driver.findElement(By.xpath("//div[@class='Select-menu-outer']//div[text()='"+textval+"']"));
    ((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView(true);",listElement);
    listElement.click();
}