无法使用java中的testNG Selenium 3.3.1从所选下拉列表中选择具有隐藏属性的任何元素

无法使用java中的testNG Selenium 3.3.1从所选下拉列表中选择具有隐藏属性的任何元素,java,selenium-webdriver,Java,Selenium Webdriver,我尝试过不同的方法,但没有成功。请帮我找到解决这个问题的办法 我正在测试一个页面如下的应用程序。 请参阅本页,并帮助我从上页给出的下拉列表中选择值 顺便说一句,在下面几行的帮助下,我可以单击下拉列表,但无法使用不同的技术选择任何值 试试这个片段 WebElement TargetLanguage = driver.findElement(By.cssSelector("#targetLanguageId_chosen>ul>li>input")); Targe

我尝试过不同的方法,但没有成功。请帮我找到解决这个问题的办法

我正在测试一个页面如下的应用程序。 请参阅本页,并帮助我从上页给出的下拉列表中选择值

顺便说一句,在下面几行的帮助下,我可以单击下拉列表,但无法使用不同的技术选择任何值

试试这个片段

    WebElement TargetLanguage =  driver.findElement(By.cssSelector("#targetLanguageId_chosen>ul>li>input"));
    TargetLanguage.click();

    Thread.sleep(3000);

    // Gets the target languages in the List
    List<WebElement> LangElements = driver.findElements(By.cssSelector("#targetLanguageId_chosen>.chosen-drop>ul>li"));
    for(WebElement t : LangElements)
    {
        if(t.getText().equalsIgnoreCase("Arabic"))
        {
            t.click();
        }

    }
这里是我点击阿拉伯语的一个例子。您可以将其替换为所需的语言并使用它

希望对你有用。如果出了什么问题,请尽管问。

试试这个方法

driver.get("https://www.marstranslation.com/place-order");
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
driver.findElement(By.xpath("//a/span[contains(text(), 'English')]")).click();          //Click on dropdown using xpath locator.
WebDriverWait wait = new WebDriverWait(driver, 15);    //Use explicit wait method for find an element
wait.until(ExpectedConditions.elementToBeClickable(driver.findElement(By.xpath("//ul/li[contains(text(), 'Arabic')]"))));
driver.findElement(By.xpath("//ul/li[contains(text(), 'Arabic')]")).click();      //After explicit wait, click on Arabic option from dropdown using xpath locator.

我更喜欢为这样的东西编写函数,因为它们可能会被重用

public static void SelectSourceLanguage(String language)
{
    driver.findElement(By.cssSelector("a.chosen-single")).click(); // click the dropdown
    driver.findElement(By.xpath("//ul[@class='chosen-results']/li[contains(.,'" + language + "')]")).click(); // click the language
}
那么你可以这样称呼它

driver.get("https://www.marstranslation.com/place-order");
SelectSourceLanguage("Hindi");

到底是什么问题?您可以单击下拉列表,但不能选择任何值。如何选择该值?然后呢?请添加您拥有的代码、您期望的结果以及实际发生的情况。
driver.get("https://www.marstranslation.com/place-order");
SelectSourceLanguage("Hindi");