Further inspecting the source code of the downloaded page, I found the following:

<!-- language: lang-html -->

    <li id="nav-sequences"
        class="module-load transcript"
        wname="sequences"
        href="/rest/widget/transcript/K06C4.12/sequences">
        <span class="ui-icon ui-icon-close module-close" wname="sequences"
        </span>
        Sequences
    </li>

This suggested me to have a look at <http://www.wormbase.org/rest/widget/transcript/K06C4.12/sequences> and I obtained a page containing the elements found in the DOM inspector.

This can be parsed, for instance using the [`bs4` python module](https://www.crummy.com/software/BeautifulSoup/bs4/doc/):

<!-- language: lang-python -->

    # To get the page
    import requests
    # To parse the page content
    from bs4 import BeautifulSoup
    # To get this into Biopython
    from io import StringIO
    from Bio import SeqIO
    
    rest_template = "http://www.wormbase.org/rest/widget/transcript/{accession}/sequences"
    rest = rest_template.format(accession="K06C4.12")
    # This did not work with "html.parser"
    soup = BeautifulSoup(requests.get(rest).text, "html5lib")
    
    def generate_fasta(soup):
        name = None
        for div in soup.find_all("div"):
            if "ui-helper-hidden" in div["class"]:
                if div["id"] == "content":
                    fasta = SeqIO.read(StringIO(div.text), "fasta")
                    description_fields = fasta.description.split()
                    if len(description_fields) == 4:
                        fasta.id = "_".join(description_fields[:2])
                        if name is None:
                            name = fasta.name
                    elif len(description_fields) == 2:
                        # This assumes that the "conceptual_translation"
                        # is after the "unspliced + UTR" or "spliced + UTR"
                        # Otherwise, one would need to pass
                        # the accession as function parameter
                        fasta.id = f"{name}_translation"
                    else:
                        fasta.id = "_".join(description_fields)
                    yield (fasta.id, fasta)
    
    records_dict = dict(generate_fasta(soup))
    print(records_dict['K06C4.12_spliced'])
    print(records_dict['K06C4.12_translation'])

Output:

    ID: K06C4.12_spliced
    Name: K06C4.12
    Description: K06C4.12 spliced + UTR
    Number of features: 0
    Seq('ATGGCCCCACCAAAGCCGTCTGCTAAAGGAGCAAAGAAAGCCGCCAAGACCGTC...TAA', SingleLetterAlphabet())
    ID: K06C4.12_translation
    Name: conceptual
    Description: conceptual translation
    Number of features: 0
    Seq('MAPPKPSAKGAKKAAKTVTKPKDGKKRRHARKESYSVYIYRVLKQVHPDTGVSS...SK*', SingleLetterAlphabet())