base.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. from seleniumbase import BaseCase
  2. class Tweet(object):
  3. def __init__(self, tweet=''):
  4. namerow = tweet + '.tweet-header '
  5. self.fullname = namerow + '.fullname'
  6. self.username = namerow + '.username'
  7. self.date = namerow + '.tweet-date'
  8. self.text = tweet + '.status-content.media-body'
  9. self.retweet = tweet + '.retweet'
  10. self.reply = tweet + '.replying-to'
  11. class Profile(object):
  12. fullname = '.profile-card-fullname'
  13. username = '.profile-card-username'
  14. protected = '.protected-icon'
  15. verified = '.verified-icon'
  16. banner = '.profile-banner'
  17. bio = '.profile-bio'
  18. class Timeline(object):
  19. newest = 'div[class="status-el show-more"]'
  20. older = 'div[class="show-more"]'
  21. end = '.timeline-end'
  22. none = '.timeline-none'
  23. protected = '.timeline-protected'
  24. class Conversation(object):
  25. main = '.main-tweet'
  26. before = '.before-tweet'
  27. after = '.after-tweet'
  28. replies = '.replies'
  29. thread = '.reply'
  30. tweet = '.status-el'
  31. tweet_text = '.status-content'
  32. class Poll(object):
  33. votes = '.poll-info'
  34. choice = '.poll-meter'
  35. value = 'poll-choice-value'
  36. option = 'poll-choice-option'
  37. leader = 'leader'
  38. class Media(object):
  39. container = '.attachments'
  40. row = '.gallery-row'
  41. image = '.still-image'
  42. video = '.gallery-video'
  43. gif = '.gallery-gif'
  44. class BaseTestCase(BaseCase):
  45. def setUp(self):
  46. super(BaseTestCase, self).setUp()
  47. def tearDown(self):
  48. super(BaseTestCase, self).tearDown()
  49. def open_nitter(self, page=''):
  50. self.open(f'http://localhost:5000/{page}')
  51. def search_username(self, username):
  52. self.open_nitter()
  53. self.update_text('input', username)
  54. self.submit('form')
  55. def get_timeline_tweet(num=1):
  56. return Tweet(f'#posts > div:nth-child({num}) ')