pythonhtmlmechanicalsoup

How to set a text in a textarea by using Mechanical Soup?


I'm learning to create an Omegle bot, but the Omegle interface was created in HTML and I don't know very much about HTML nor MechanicalSoup.

In the part where the text is inserted, the code snippet is as follows:

<td class="chatmsgcell">
    <div class="chatmsgwrapper">
        <textarea class="chatmsg " cols="80" rows="3"></textarea>
    </div>
</td>

In the part of the button to send the text, the code snippet is:

<td class="sendbthcell">
    <div class="sendbtnwrapper">
        <button class="sendbtn">Send<div class="btnkbshortcut">Enter</div></button>
    </div>
</td>

I want to set a text in textarea and send it via button.

Looking at some examples in HTML, I guess the correct way to set text in a textarea is as follows:

<textarea>Here's a text.</textarea>

Also, I'm new at MechanicalSoup, but I think I know how to find and set a value in an HTML code:

# example in the Twitter interface

login_form = login_page.soup.find("form", {"class": "signin"})

LOGIN = "yourlogin"
login_form.find("input", {"name": "session[username_or_email]"})["value"] = LOGIN

From what I understand, the first argument is the name of the tag and a second argument is a dictionary whose first element is the name of the attribute and the second element is the value of the attribute.

But the tag textarea don't have an attribute for setting a text, like value="Here's a text.". What I should do for set a text in a textarea using MechanicalSoup?


Solution

  • I know it's not the answer you expect, but reading the doc would help ;-).

    The full documentation is available at:

    https://mechanicalsoup.readthedocs.io/

    You probably want to start with the tutorial:

    https://mechanicalsoup.readthedocs.io/en/stable/tutorial.html

    In short, you need to select the form you want to fill-in:

    browser.select_form('form[action="/post"]')
    

    Then, filling-in fields is as simple as

    browser["custname"] = "Me"
    browser["custtel"] = "00 00 0001"
    browser["custemail"] = "nobody@example.com"
    browser["comments"] = "This pizza looks really good :-)"