Selenium - Python - Select dropdown meun option - No ID or Name
Question: I am trying to select and element in a dropdown menu:

The HTML is:

    
    
    <div class="col-lg-6">
           <select data-bind="options: indicator_type_list,value: indicatorType,optionsCaption: 'Choose...', disable: $root.mode().isReadOnly()">
            <option value="">Choose...</option>
            <option value="Malicious E-mail">Malicious E-mail</option>
            <option value="IP Watchlist">IP Watchlist</option>
            <option value="File Hash Watchlist">File Hash Watchlist</option>
            <option value="Domain Watchlist">Domain Watchlist</option>
            <option value="URL Watchlist">URL Watchlist</option>
            <option value="Malware Artifacts">Malware Artifacts</option>
            <option value="C2">C2</option>
            <option value="Anonymization">Anonymization</option>
            <option value="Exfiltration">Exfiltration</option>
            <option value="Host Characteristics">Host Characteristics</option>
            <option value="Compromised PKI Certificate">Compromised PKI Certificate</option>
            <option value="Login Name">Login Name</option>
            <option value="IMEI Watchlist">IMEI Watchlist</option>
            <option value="IMSI Watchlist">IMSI Watchlist</option>
           </select>
    </div>
    

I have tried:

    
    
    Select = Select(browser.find_element_by_xpath("//div[contains(.,'Choose...Malicious E-mailIP WatchlistFile Hash WatchlistDomain WatchlistURL WatchlistMalware ArtifactsC2AnonymizationExfiltrationHost CharacteristicsCompromised PKI CertificateLogin NameIMEI WatchlistIMSI Watchlist')]"))
    

and

    
    
    test = browser.find_element_by_xpath("//option[@value='Malicious E-mail']") 
    dropdown = test.find_element_by_xpath('..')
    select = Select(browser.dropdown)
    

However I cannot seem to find the element to select the items in the dropdown.

Any help is appreciated!


Answer: There are multiple ways to locate this `select` element.

Here is one way - locate the `select` element that has a specific `option`
inside:

    
    
    from selenium.webdriver.support.select import Select
    
    option_value = "Malicious E-mail"
    
    select_element = browser.find_element_by_xpath("//select[option[@value = '%s']]" % option_value)
    select = Select(select_element)
    select.select_by_value(option_value)
    

