Is there a way to assign an id to the div block of a particular widget?
The context is the following: I am writing some automated tests to a Streamlit application and I would like to use the id to find specific input widgets. As far as I could see, they have a custom class (".stRadio", “.stSelectbox”, etc…), but this will be ambiguous if the same widget type appears more than once in the page.
Hi, what library are you using for automated testing? If you’re using selenium or cypress, I think can’t you get all of the widgets with a regex and then search within the returned widgets by index for what you need?
I am using selenium. Which type of regex you have in mind?
As I mentioned in the OP, I have to make a first selection using the class, then try to figure out from other attributes if the component is actually the one I want to interact or make assertions. This makes simple assertions, like “does the component exist in the layout after this interactions” very cumbersome.
I can see in my applications that the Streamlit components (of class “stSomething”) don’t have any ids assigned, and I imagine that this could be a fairly simple addition to the base components.
Edit: Ok, I have found the same feature request. Please it if you came looking for this.
Thanks for stopping by! We use cookies to help us understand how you interact with our website.
By clicking “Accept all”, you consent to our use of cookies. For more information, please see our privacy policy.
Cookie settings
Strictly necessary cookies
These cookies are necessary for the website to function and cannot be switched off. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms.
Performance cookies
These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. They help us understand how visitors move around the site and which pages are most frequently visited.
Functional cookies
These cookies are used to record your choices and settings, maintain your preferences over time and recognize you when you return to our website. These cookies help us to personalize our content for you and remember your preferences.
Targeting cookies
These cookies may be deployed to our site by our advertising partners to build a profile of your interest and provide you with content that is relevant to you, including showing you relevant ads on other websites.