|
|
|
|
|
|
|
|
headless = true |
|
|
quit_on_end = true |
|
|
|
|
|
|
|
|
valid_path_names = ["path", "filename", "video", "video_path"] |
|
|
valid_descriptions = ["description", "desc", "caption"] |
|
|
|
|
|
|
|
|
implicit_wait = 5 |
|
|
explicit_wait = 60 |
|
|
|
|
|
supported_file_types = ["mp4", "mov", "avi", "wmv", "flv", "webm", "mkv", "m4v", "3gp", "3g2", "gif"] |
|
|
|
|
|
max_description_length = 150 |
|
|
|
|
|
[paths] |
|
|
main = "https://www.tiktok.com/" |
|
|
login = "https://www.tiktok.com/login/phone-or-email/email" |
|
|
upload = "https://www.tiktok.com/creator-center/upload?from=upload" |
|
|
|
|
|
[disguising] |
|
|
user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3' |
|
|
|
|
|
[selectors] |
|
|
|
|
|
[selectors.login] |
|
|
username_field = "//input[@name=\"username\"]" |
|
|
password_field = "//input[@type=\"password\"]" |
|
|
login_button = "//button[@type=\"submit\"]" |
|
|
|
|
|
alert_user_if_failed = true |
|
|
|
|
|
cookie_of_interest = "sessionid" |
|
|
|
|
|
[selectors.upload] |
|
|
iframe = "//iframe" |
|
|
|
|
|
upload_video = "//input[@type='file']" |
|
|
upload_in_progress = "//*[.='Cancel']" |
|
|
upload_confirmation = "//div[contains(@class, 'tiktok-app-frame')]" |
|
|
process_confirmation = "//div[contains(@class, 'tiktok-app-frame')]" |
|
|
|
|
|
description = "//div[@contenteditable='true']" |
|
|
|
|
|
visibility = "//div[@class='tiktok-select-selector']" |
|
|
options = ["Public", "Friends", "Private"] |
|
|
|
|
|
hashtags = "//div[@class='mentionSuggestions']//*[contains(text(), '{}')]" |
|
|
mentions = "//div[contains(concat(' ', normalize-space(@class), ' '), 'user-id') and .='{}']/.." |
|
|
|
|
|
mention_box = "//input[contains(concat(' ', normalize-space(@class), ' '), 'search-friends')]" |
|
|
|
|
|
comment = "//label[.='Comment']/following-sibling::div/input" |
|
|
duet = "//label[.='Duet']/following-sibling::div/input" |
|
|
stitch = "//label[.='Stitch']/following-sibling::div/input" |
|
|
|
|
|
post = "//div[contains(@class, 'btn-post')]" |
|
|
post_confirmation = "//div[.='Your videos are being uploaded to TikTok!']" |
|
|
|
|
|
[selectors.schedule] |
|
|
switch = "//*[@id='tux-3']" |
|
|
|
|
|
date_picker = "//div[contains(@class, 'date-picker-input')]" |
|
|
calendar = "//div[contains(@class, 'calendar-wrapper')]" |
|
|
calendar_month = "//span[contains(@class, 'month-title')]" |
|
|
calendar_valid_days = "//div[@class='jsx-4172176419 days-wrapper']//span[contains(@class, 'day') and contains(@class, 'valid')]" |
|
|
calendar_arrows = "//span[contains(@class, 'arrow')]" |
|
|
|
|
|
time_picker = "//div[contains(@class, 'time-picker-input')]" |
|
|
time_picker_text = "//div[contains(@class, 'time-picker-input')]/*[1]" |
|
|
time_picker_container = "//div[@class='tiktok-timepicker-time-picker-container']" |
|
|
timepicker_hours = "//span[contains(@class, 'tiktok-timepicker-left')]" |
|
|
timepicker_minutes = "//span[contains(@class, 'tiktok-timepicker-right')]" |