The asserts I commonly use are: Assert that: - An element is present based on a CSS identifier, ideally ID - An element is present based on other selectors - When a user choose an option that should present a form, a form element is present - A form element is correctly not present (e.g. not redisplayed due to error) - The correct markup is present after an action is performed - An error form has the correct markup and information for validations - When I submit a form, application pages then list the new item as added - When I delete content as a user, the content no longer shows on the relevant pages Avoid or be conservative in these assertions because they are brittle, likely to break and require maintenance over time: - specific text for large blocks of text or text that is likely to have wording changed - specific text in one language when the site serves multiple languages - identifiers such as css class which may not be or remain unique - identifiers that are overly specific and include page layout