Java 类org.openqa.selenium.support.ui.Select 实例源码

项目:phoenix.webui.framework    文件:SeleniumSelect.java   
@Override
public WebElement randomSelect(Element ele)
{
    Select select = createSelect(ele);
    if(select != null)
    {
        List<WebElement> options = select.getOptions();
        if(CollectionUtils.isNotEmpty(options))
        {
            int count = options.size();
            int index = RandomUtils.nextInt(count);
            index = (index == 0 ? 1 : index); //通常第一个选项都是无效的选项

            select.selectByIndex(index);

            return options.get(index);
        }
    }

    return null;
}
项目:Selenium-Foundation    文件:ComponentContainer.java   
/**
 * Update the specified element with the indicated value
 * 
 * @param element target element (input, select)
 * @param value desired value
 * @return 'true' if element value changed; otherwise 'false'
 */
public static boolean updateValue(WebElement element, String value) {
    Objects.requireNonNull(element, "[element] must be non-null");

    String tagName = element.getTagName().toLowerCase();
    if ("input".equals(tagName)) {
        if ("checkbox".equals(element.getAttribute("type"))) {
            return updateValue(element, Boolean.parseBoolean(value));
        } else if (!valueEquals(element, value)) {
            if (value == null) {
                element.clear();
            } else {
                WebDriverUtils.getExecutor(element).executeScript("arguments[0].select();", element);
                element.sendKeys(value);
            }
            return true;
        }
    } else if ("select".equals(tagName) && !valueEquals(element, value)) {
        new Select(element).selectByValue(value);
        return true;
    }
    return false;
}
项目:cucumber-framework-java    文件:WebDriverUtils.java   
public static void SelectByVisibleText_BootStrap( WebDriver driver, By elementById, String visibleOptionText )
    {
        try
        {
            String elementId = elementById.toString().split( ":" )[ 1 ].trim();

            String js = String.format( "document.getElementById('%s').removeAttribute('class');", elementId );
            ( ( JavascriptExecutor ) driver ).executeScript( js );
//( ( JavascriptExecutor ) driver ).executeScript( String.format( "document.getElementById('%s').style.display='block';", elementId ) );
            String cssSelector = String.format( "select#%s", elementId );
            Select selectObject = new Select( driver.findElement( By.cssSelector( cssSelector ) ) );
            selectObject.selectByVisibleText( visibleOptionText );
        } catch( Exception e )
        {
            throw new WebDriverException("Some error occured while Selecting option", e);
        }
    }
项目:saladium    文件:SaladiumDriver.java   
@Override
public void etreSelectionne(String type, String selector, String valeur) {
    WebElement elem = this.findElement(BySelec.get(type, selector));
    String tagName = elem.getTagName();
    if (tagName.equals("select")) {
        Select listProfile = new Select(elem);
        if (!listProfile.getFirstSelectedOption().getText().equals(valeur)) {
            Assert.fail("la valeur de l'élément ne correspond pas à la valeur " + valeur + "!");
        }
    } else {
        WebElement item = elem.findElement(By.cssSelector("li > div > div:first-child()"));
        if (!item.getText().equals(valeur)) {
            Assert.fail("la valeur de l'élément ne correspond pas à la valeur " + valeur + "!");
        }
    }
}
项目:ats-framework    文件:RealHtmlMultiSelectList.java   
/**
 * select a value
 *
 * @param value the value to select
 */
@Override
@PublicAtsApi
public void setValue(
                      String value ) {

    new RealHtmlElementState(this).waitToBecomeExisting();

    try {
        WebElement element = RealHtmlElementLocator.findElement(this);
        Select select = new Select(element);
        select.selectByVisibleText(value);
    } catch (NoSuchElementException nsee) {
        throw new SeleniumOperationException("Option with label '" + value + "' not found. ("
                                             + this.toString() + ")");
    }
    UiEngineUtilities.sleep();
}
项目:ats-framework    文件:RealHtmlMultiSelectList.java   
/**
 * unselect a value
 *
 * @param value the value to unselect
 */
@Override
@PublicAtsApi
public void unsetValue(
                        String value ) {

    new RealHtmlElementState(this).waitToBecomeExisting();

    WebElement element = RealHtmlElementLocator.findElement(this);
    Select select = new Select(element);
    // select.deselectByVisibleText( value ); // this method doesn't throw an exception if the option doesn't exist
    for (WebElement option : select.getOptions()) {
        if (option.getText().equals(value)) {
            if (option.isSelected()) {
                option.click();
                UiEngineUtilities.sleep();
            }
            return;
        }
    }
    throw new SeleniumOperationException("Option with label '" + value + "' not found. ("
                                         + this.toString() + ")");
}
项目:ats-framework    文件:RealHtmlMultiSelectList.java   
/**
 * @return the selected values
 */
@Override
@PublicAtsApi
public String[] getValues() {

    new RealHtmlElementState(this).waitToBecomeExisting();

    WebElement element = RealHtmlElementLocator.findElement(this);
    Select select = new Select(element);
    List<WebElement> selectedOptions = select.getAllSelectedOptions();
    String[] result = new String[selectedOptions.size()];
    int i = 0;
    for (WebElement selectedOption : selectedOptions) {
        result[i++] = selectedOption.getText();
    }
    return result;
}
项目:ats-framework    文件:RealHtmlSingleSelectList.java   
/**
 * set the single selection value
 *
 * @param value the value to select
 */
@Override
@PublicAtsApi
public void setValue(
                      String value ) {

    new RealHtmlElementState(this).waitToBecomeExisting();

    try {
        WebElement element = RealHtmlElementLocator.findElement(this);
        Select select = new Select(element);
        select.selectByVisibleText(value);
    } catch (NoSuchElementException nsee) {
        throw new SeleniumOperationException("Option with label '" + value + "' not found. ("
                                             + this.toString() + ")");
    }
    UiEngineUtilities.sleep();
}
项目:ats-framework    文件:RealHtmlSingleSelectList.java   
/**
 * @return  a list with all possible selection values
 */
@Override
@PublicAtsApi
public List<String> getAllPossibleValues() {

    List<String> values = new ArrayList<String>();
    new RealHtmlElementState(this).waitToBecomeExisting();

    WebElement element = RealHtmlElementLocator.findElement(this);
    Select select = new Select(element);
    Iterator<WebElement> iterator = select.getOptions().iterator();

    if (!select.getAllSelectedOptions().isEmpty()) {
        while (iterator.hasNext()) {
            values.add(iterator.next().getText());
        }
        return values;
    }
    throw new SeleniumOperationException("There is no selectable 'option' in " + this.toString());
}
项目:testing_security_development_enterprise_systems    文件:CreateEventPageObject.java   
public HomePageObject createEvent(String title, String country, String location, String description){
    setText("createEventForm:title",title);
    setText("createEventForm:location",location);
    setText("createEventForm:description",description);

    new Select(driver.findElement(By.id("createEventForm:country"))).selectByVisibleText(country);

    driver.findElement(By.id("createEventForm:createButton")).click();
    waitForPageToLoad();

    if(isOnPage()){
        return null;
    } else {
        return new HomePageObject(driver);
    }
}
项目:testing_security_development_enterprise_systems    文件:CreateUserPageObject.java   
public HomePageObject createUser(String userId, String password, String confirmPassword,
                                 String firstName, String middleName, String lastName, String country){

    setText("createUserForm:userName",userId);
    setText("createUserForm:password",password);
    setText("createUserForm:confirmPassword",confirmPassword);
    setText("createUserForm:firstName",firstName);
    setText("createUserForm:middleName",middleName);
    setText("createUserForm:lastName",lastName);

    try {
        new Select(driver.findElement(By.id("createUserForm:country"))).selectByVisibleText(country);
    } catch (Exception e){
        return null;
    }

    driver.findElement(By.id("createUserForm:createButton")).click();
    waitForPageToLoad();

    if(isOnPage()){
        return null;
    } else {
        return new HomePageObject(driver);
    }
}
项目:mpay24-java    文件:TestRecurringPayments.java   
private void doCreditCardPaymentOnPaymentPanel(Payment response) {
    RemoteWebDriver driver = openFirefoxAtUrl(response.getRedirectLocation());
    driver.findElement(By.name("selCC|VISA")).click();
    WebDriverWait wait = new WebDriverWait(driver, 20);
    wait.until(ExpectedConditions.elementToBeClickable(By.id("cardnumber")));

    driver.findElement(By.id("cardnumber")).sendKeys("4444333322221111");
    driver.findElement(By.id("cvc")).sendKeys("123");
    (new Select(driver.findElement(By.id("expiry-month")))).selectByValue("05");
    (new Select(driver.findElement(By.id("expiry-year")))).selectByValue(getYear());
    driver.findElement(By.name("profile_id")).sendKeys("x");


    driver.findElement(By.id("right")).click();
    wait.until(ExpectedConditions.elementToBeClickable(By.id("right")));
    driver.findElement(By.id("right")).click();
}
项目:oldmonk    文件:BasePage.java   
/**
 * Select option by option text.
 * 
 * @param locator
 *            - element locator
 * @param replacement
 *            - if element contains dynamic part, i.e. '$value' in locator
 *            part, then '$value' part will be replaced by replacement value
 * @param optionText
 *            - dropdown option text
 * @throws PropertyNotFoundException
 *             - throw this exception when declared locator is not found in
 *             object repository
 * @throws InvalidLocatorStrategyException
 *             - throw this exception when locator strategy is wrong. Valid
 *             locator strategies are 'ID', 'XPATH', 'NAME', 'CSS_SELECTOR',
 *             'CLASS_NAME', 'LINK_TEXT', 'PARTIAL_LINK_TEXT' and 'TAG_NAME'
 */
public void selectOptionByText(String locator, String replacement, String optionText)
        throws PropertyNotFoundException, InvalidLocatorStrategyException
{
    if (replacement != null)
    {
        if (locator.contains("$value"))
        {
            locator = locator.replace("$value", replacement);
        }
    }

    element = ElementFinder.findElement(driver, locator);

    Select dropdown = new Select(element);
    dropdown.selectByVisibleText(optionText);

    LOGGER.info("Successfully selected option '" + optionText + "' from element '" + locator
            + "' with locator value '" + props.getProperty(locator) + "'");
}
项目:oldmonk    文件:BasePage.java   
/**
 * Select option by option index.
 * 
 * @param locator
 *            - element locator
 * @param replacement
 *            - if element contains dynamic part, i.e. '$value' in locator
 *            part, then '$value' part will be replaced by replacement value
 * @param optionIndex
 *            - index of dropdown option
 * @throws PropertyNotFoundException
 *             - throw this exception when declared locator is not found in
 *             object repository
 * @throws InvalidLocatorStrategyException
 *             - throw this exception when locator strategy is wrong. Valid
 *             locator strategies are 'ID', 'XPATH', 'NAME', 'CSS_SELECTOR',
 *             'CLASS_NAME', 'LINK_TEXT', 'PARTIAL_LINK_TEXT' and 'TAG_NAME'
 */
public void selectOptionByIndex(String locator, String replacement, int optionIndex)
        throws PropertyNotFoundException, InvalidLocatorStrategyException
{
    if (replacement != null)
    {
        if (locator.contains("$value"))
        {
            locator = locator.replace("$value", replacement);
        }
    }

    element = ElementFinder.findElement(driver, locator);

    Select dropdown = new Select(element);
    dropdown.selectByIndex(optionIndex);

    LOGGER.info("Successfully selected option with index " + optionIndex + "' from element '" + locator
            + "' with locator value '" + props.getProperty(locator) + "'");
}
项目:xtf    文件:SsoWebUIApi.java   
@Override
public String createOidcBearerClient(String clientName) {
    try {
        // .../auth/admin/master/console/#/create/client/foobar
        driver.navigate().to(authUrl + "/admin/master/console/#/create/client/" + realm + "/");
        DriverUtil.waitFor(driver, By.id("clientId"));

        driver.findElement(By.id("clientId")).sendKeys(clientName);
        driver.findElement(By.xpath("//button[contains(text(),'Save')]")).click();
        DriverUtil.waitFor(driver, By.id("accessType"));

        Select accessTypeSelect = new Select(driver.findElement(By.id("accessType")));
        accessTypeSelect.selectByVisibleText(OpenIdAccessType.BEARER_ONLY.getLabel());

        String clientId = driver.getCurrentUrl();
        int lastSlash = clientId.lastIndexOf("/");
        clientId = clientId.substring(lastSlash + 1);

        driver.findElement(By.xpath("//button[contains(text(),'Save')]")).click();

        return clientId;
    } catch (InterruptedException | TimeoutException e) {
        throw new IllegalStateException("Failed to ...", e);
    }
}
项目:Cognizant-Intelligent-Test-Scripter    文件:Dropdown.java   
@Action(object = ObjectType.SELENIUM,
        desc = "Assert if the  select list [<Object>] contains [<Data>]",
        input = InputType.YES)
public void assertSelectContains() {
    if (elementPresent()) {
        Boolean isPresent = false;
        Select select = new Select(Element);
        for (WebElement option : select.getOptions()) {
            if (option.getText().trim().equals(Data)) {
                isPresent = true;
                break;
            }
        }
        if (isPresent) {
            Report.updateTestLog(Action, ObjectName + " Contains the Option " + Data, Status.DONE);
        } else {
            Report.updateTestLog(Action, ObjectName + " doesn't Contains the Option " + Data, Status.DEBUG);
        }
    } else {
        throw new ElementException(ElementException.ExceptionType.Element_Not_Found, ObjectName);
    }
}
项目:phoenix.webui.framework    文件:SeleniumSelect.java   
@Override
public boolean selectByText(Element element, String text)
{
    Select select = createSelect(element);
    if(select != null)
    {
        select.selectByVisibleText(text);
        return true;
    }

    return false;
}
项目:phoenix.webui.framework    文件:SeleniumSelect.java   
@Override
public boolean selectByValue(Element element, String value)
{
    Select select = createSelect(element);
    if(select != null)
    {
        select.selectByValue(value);
        return true;
    }

    return false;
}
项目:phoenix.webui.framework    文件:SeleniumSelect.java   
@Override
public boolean selectByIndex(Element element, int index)
{
    Select select = createSelect(element);
    if(select != null)
    {
        select.selectByIndex(index);
        return true;
    }

    return false;
}
项目:phoenix.webui.framework    文件:SeleniumSelect.java   
@Override
public boolean deselectByText(Element element, String text)
{
    Select select = createSelect(element);
    if(select != null)
    {
        select.deselectByVisibleText(text);
        return true;
    }

    return false;
}
项目:phoenix.webui.framework    文件:SeleniumSelect.java   
@Override
public boolean deselectByValue(Element element, String value)
{
    Select select = createSelect(element);
    if(select != null)
    {
        select.deselectByValue(value);
        return true;
    }

    return false;
}
项目:phoenix.webui.framework    文件:SeleniumSelect.java   
@Override
public boolean deselectByIndex(Element element, int index)
{
    Select select = createSelect(element);
    if(select != null)
    {
        select.deselectByIndex(index);
        return true;
    }

    return false;
}
项目:phoenix.webui.framework    文件:SeleniumSelect.java   
@Override
public boolean deselectAll(Element element)
{
    Select select = createSelect(element);
    if(select != null)
    {
        select.deselectAll();
        return true;
    }

    return false;
}
项目:phoenix.webui.framework    文件:SeleniumSelect.java   
@Override
public boolean isMultiple(Element element)
{
    Select select = createSelect(element);
    if(select != null)
    {
        return select.isMultiple();
    }

    return false;
}
项目:phoenix.webui.framework    文件:SeleniumSelect.java   
/**
 * 转化为Selenium支持的下拉列表对象
 * @param element
 * @return
 */
private Select createSelect(Element element)
{
    WebElement webEle = searchStrategyUtils.findStrategy(WebElement.class, element).search(element);
    if (webEle != null)
    {
        return new Select(webEle);
    }

    return null;
}
项目:kheera    文件:AbstractPage.java   
@Override
public boolean clickDropdownOptionAndIndex(WebElement w, String... args) throws Exception{
    boolean result = false;
    String d = args[0];
    try{
        Select s = new Select(w);
        s.selectByIndex(Integer.parseInt(d) - 1);
        result = true;
    }catch(Exception e){
        e.printStackTrace();
        result = false;
    }
    Assert.assertTrue(result, w.toString() + " - select drop down item with index = " + d);
    return result;
}
项目:module-template    文件:Unit1Helper.java   
public void fillUnit1Form(Unit1Data unit1Data, boolean creation) {
    type(By.name("text_field"), unit1Data.getTextField());
    type(By.name("big_text_field"), unit1Data.getBigTextField());
    attach(By.name("photo"), unit1Data.getPhoto());

    if (creation) {
        if (unit1Data.getUnits2().size() > 0) {
            Assert.assertTrue(unit1Data.getUnits2().size() == 1);
            new Select(driver.findElement(By.name("new_unit2")))
                    .selectByVisibleText(unit1Data.getUnits2().iterator().next().getTextField());
        }
    } else {
        Assert.assertFalse(isElementPresent(By.name("new_unit2")));
    }
}
项目:cucumber-framework-java    文件:WebDriverWebController.java   
public List<String> getSelectedOptions(String locator) {
    List<String> optionValues = new ArrayList<String>();
    Select menuList = getSelectObject(locator);
    List<WebElement> options = menuList.getAllSelectedOptions();
    for (WebElement option : options) {
        optionValues.add(option.getText());
    }
    return optionValues;

}
项目:cucumber-framework-java    文件:WebDriverWebController.java   
public List<String> getAllListOptions(String locator) {
    List<String> optionValues = new ArrayList<String>();
    Select menuList = getSelectObject(locator);
    List<WebElement> options = menuList.getOptions();
    for (WebElement option : options) {
        optionValues.add(option.getText());
    }
    return optionValues;
}
项目:cucumber-framework-java    文件:ControllerBase.java   
public List<String> getSelectedOptions(String locator) {
    List<String> optionValues = new ArrayList<String>();
    Select menuList = getSelectObject(locator);
    List<WebElement> options = menuList.getAllSelectedOptions();
    for (WebElement option : options) {
        optionValues.add(option.getText());
    }
    return optionValues;

}
项目:cucumber-framework-java    文件:ControllerBase.java   
public List<String> getAllListOptions(String locator) {
    List<String> optionValues = new ArrayList<String>();
    Select menuList = getSelectObject(locator);
    List<WebElement> options = menuList.getOptions();
    for (WebElement option : options) {
        optionValues.add(option.getText());
    }
    return optionValues;
}
项目:NoraUi    文件:Step.java   
private void setDropDownValue(PageElement element, String text) throws TechnicalException, FailureException {
    WebElement select = Context.waitUntil(ExpectedConditions.elementToBeClickable(Utilities.getLocator(element)));
    Select dropDown = new Select(select);
    int index = NameUtilities.findOptionByIgnoreCaseText(text, dropDown);
    if (index != -1) {
        dropDown.selectByIndex(index);
    } else {
        new Result.Failure<>(text, Messages.format(Messages.getMessage(Messages.FAIL_MESSAGE_VALUE_NOT_AVAILABLE_IN_THE_LIST), element, element.getPage().getApplication()), false,
                element.getPage().getCallBack());
    }

}
项目:NoraUi    文件:NameUtilities.java   
public static int findOptionByIgnoreCaseText(String text, Select dropDown) {
    int index = 0;
    for (WebElement option : dropDown.getOptions()) {
        if (comparingNames(text, option.getText())) {
            return index;
        }
        index++;
    }
    return -1;
}
项目:ats-framework    文件:RealHtmlSingleSelectList.java   
/**
 * @return the single selection value
 */
@Override
@PublicAtsApi
public String getValue() {

    new RealHtmlElementState(this).waitToBecomeExisting();

    WebElement element = RealHtmlElementLocator.findElement(this);
    Select select = new Select(element);
    if (!select.getAllSelectedOptions().isEmpty()) {
        return select.getFirstSelectedOption().getText();
    }
    throw new SeleniumOperationException("There is no selected 'option' in " + this.toString());
}
项目:mot-automated-testsuite    文件:WebDriverWrapper.java   
/**
 * Selects the specified option in the (dropdown/multi-select) field.
 * @param optionText  The text of the option to select
 * @param label       The field label
 */
public void selectOptionInField(String optionText, String label) {
    // find the input associated with the specified label...
    WebElement labelElement = webDriver.findElement(By.xpath("//label[contains(text(),'" + label + "')]"));
    Select selectElement = new Select(webDriver.findElement(By.id(labelElement.getAttribute("for"))));
    selectElement.selectByVisibleText(optionText);
}
项目:hippo    文件:ContentPage.java   
public void populatePublication(Publication publication) {
    populateDocumentTitle(publication.getTitle());
    populateDocumentSummary(publication.getSummary());

    getPubliclyAccessibleWidget().select(publication.isPubliclyAccessible());

    populateDocumentNominalDate(publication.getNominalPublicationDate().asInstant());

    GeographicCoverage geographicCoverage = publication.getGeographicCoverage();
    if (geographicCoverage != null) {
        new Select(helper.findElement(
            By.xpath(XpathSelectors.EDITOR_BODY + "//span[text()='Geographic Coverage']/../following-sibling::div//select[@class='dropdown-plugin']")
        )).selectByVisibleText(
            geographicCoverage.getDisplayValue()
        );
    }

    InformationType informationType = publication.getInformationType();
    if (informationType != null) {
        getInformationTypeSection().addInformationTypeField();
        new Select(helper.findElement(
            By.xpath(XpathSelectors.EDITOR_BODY + "//span[text()='Information Type']/../following-sibling::div//select[@class='dropdown-plugin']")
        )).selectByVisibleText(
            informationType.getDisplayName()
        );
    }

    Granularity granularity = publication.getGranularity();
    if (granularity != null) {
        getGranularitySection().addGranularityField();
        getGranularitySection().populateGranularityField(granularity);
    }

    populateTaxonomy(publication);

    getAttachmentsWidget().uploadAttachments(publication.getAttachments());
}
项目:opentest    文件:SelectListOption.java   
@Override
public void run() {
    super.run();

    By locator = this.readLocatorArgument("locator");
    String optionValue = this.readStringArgument("optionValue", null);
    String optionText = this.readStringArgument("optionText", null);
    Integer optionNumber = this.readIntArgument("optionNumber", null);

    this.waitForAsyncCallsToFinish();

    Select dropdownElement = new Select(this.getElement(locator));

    if (optionValue != null) {
        dropdownElement.selectByValue(optionValue);
    } else if (optionText != null) {
        dropdownElement.selectByVisibleText(optionText);
    } else if (optionNumber != null) {
        dropdownElement.selectByIndex(optionNumber - 1);
    } else {
        throw new RuntimeException(
                "You must identify the option you want to select from the "
                + "list by providing one of the following arguments: "
                + "optionValue, optionText or optionIndex.");
    }

}
项目:opentest    文件:DeselectListOption.java   
@Override
public void run() {
    super.run();

    By locator = this.readLocatorArgument("locator");
    String optionValue = this.readStringArgument("optionValue", null);
    String optionText = this.readStringArgument("optionText", null);
    Integer optionNumber = this.readIntArgument("optionNumber", null);

    this.waitForAsyncCallsToFinish();

    Select dropdownElement = new Select(this.getElement(locator));

    if (optionValue != null) {
        dropdownElement.deselectByValue(optionValue);
    } else if (optionText != null) {
        dropdownElement.deselectByVisibleText(optionText);
    } else if (optionNumber != null) {
        dropdownElement.deselectByIndex(optionNumber - 1);
    } else {
        throw new RuntimeException(
                "You must identify the option you want to deselect from the "
                + "list by providing one of the following arguments: "
                + "optionValue, optionText or optionIndex.");
    }

}
项目:xtf    文件:SsoWebUIApi.java   
@Override
public String createOicdConfidentialClient(String clientName, String rootUrl, List<String> redirectUri, String baseUrl, String adminUrl) {
    try {
        // .../auth/admin/master/console/#/create/client/foobar
        driver.navigate().to(authUrl + "/admin/master/console/#/create/client/" + realm + "/");
        DriverUtil.waitFor(driver, By.id("clientId"), By.id("rootUrl"));

        driver.findElement(By.id("clientId")).sendKeys(clientName);
        driver.findElement(By.id("rootUrl")).sendKeys(rootUrl);
        driver.findElement(By.xpath("//button[contains(text(),'Save')]")).click();
        DriverUtil.waitFor(driver, By.id("accessType"));

        Select accessTypeSelect = new Select(driver.findElement(By.id("accessType")));
        accessTypeSelect.selectByVisibleText(OpenIdAccessType.CONFIDENTIAL.getLabel());
        DriverUtil.waitFor(driver, By.id("newRedirectUri"), By.id("rootUrl"));

        driver.findElement(By.id("newRedirectUri")).sendKeys(redirectUri.get(0));
        driver.findElement(By.id("baseUrl")).sendKeys(baseUrl);
        driver.findElement(By.id("adminUrl")).sendKeys(adminUrl);

        String clientId = driver.getCurrentUrl();
        int lastSlash = clientId.lastIndexOf("/");
        clientId = clientId.substring(lastSlash + 1);

        driver.findElement(By.xpath("//button[contains(text(),'Save')]")).click();

        return clientId;
    } catch (InterruptedException | TimeoutException e) {
        throw new IllegalStateException("Failed to ...", e);
    }
}
项目:xtf    文件:SsoWebUIApi.java   
@Override
public String createInsecureSamlClient(String clientName, String masterSamlUrl, String baseUrl, List<String> redirectUris) {
    try {
        driver.navigate().to(authUrl + "/admin/master/console/#/create/client/" + realm + "/");
        DriverUtil.waitFor(driver, By.id("clientId"));

        driver.findElement(By.id("clientId")).sendKeys(clientName);
        Select accessTypeSelect = new Select(driver.findElement(By.id("protocol")));
        accessTypeSelect.selectByVisibleText(ProtocolType.SAML.getLabel());

        driver.findElement(By.id("masterSamlUrl")).sendKeys(masterSamlUrl);

        driver.findElement(By.xpath("//button[contains(text(),'Save')]")).click();

        DriverUtil.waitFor(driver, By.id("baseUrl"), By.id("newRedirectUri"));

        driver.findElement(By.xpath("//label[@for='samlServerSignature']/span/span[contains(@class, 'onoffswitch-active')]")).click();
        driver.findElement(By.xpath("//label[@for='samlClientSignature']/span/span[contains(@class, 'onoffswitch-active')]")).click();

        driver.findElement(By.id("baseUrl")).sendKeys(baseUrl);

        driver.findElement(By.xpath("//button[contains(text(),'Save')]")).click();

        for (String redirectUri : redirectUris) {
            DriverUtil.waitFor(driver, By.id("newRedirectUri"));
            driver.findElement(By.id("newRedirectUri")).sendKeys(redirectUri);
            driver.findElement(By.xpath("//button[contains(text(),'Save')]")).click();
        }

        String clientUuid = driver.getCurrentUrl();
        int lastSlash = clientUuid.lastIndexOf("/");

        return clientUuid.substring(lastSlash + 1);
    } catch (InterruptedException | TimeoutException e) {
        throw new IllegalStateException("Failed to create saml client");
    }
}